1
我有以下情況:EF代碼優先一對一的關係
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。這是我已經。 –