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。这是我已经。 –