У меня следующая ситуация:EF Code First один к одному отношения
public class User
{
public int ID { get; set; }
public string Name { get; set; }
// ...
public virtual Address Address { get; set; }
}
public class Address
{
public int ID { get; set; }
public string Street { get; set; }
public string ZipCode { get; set; }
// ...
public int UserID { get; set; }
public virtual User User { get; set; }
}
Я не могу за жизнь мне понять, как настроить отображение свободно. Я пробовал:
void Map(DbModelBuilder modelBuilder)
{
var entityConfiguration = modelBuilder.Entity<User>();
entityConfiguration.HasKey(i => i.ID).Property(i => i.ID).HasColumnName("UserID");
entityConfiguration.HasRequired(i => i.Address)
.WithOptional(i => i.User);
entityConfiguration.ToTable("MyUser");
}
Но это не годится. Он генерирует SQL, который пытается присоединиться. User.UserID = Address.AddressID
Я хочу, чтобы в моей таблице «Пользователь» был ноль или один «Адрес». Для этого у меня есть уникальное ограничение для таблицы «Адрес». –
В этом случае сделайте отображение следующим образом: entityConfiguration.HasOptional (i => i.Address) .WithRequired (i => i.User); –
Это не работает. Это порождает неправильный SQL. Это то, что у меня уже есть. –