我无法找到正确的Fluent方法组合来适当地映射我的类。这基本上就是我要做的事情:
Person table: PersonID, HomeAddressID (nullable), WorkAddressID (nullable)
Address table: AddressID, Street, etc...
Person
类具有Address HomeAddress
和Address WorkAddress
属性,但不包含ID的整数属性。
Address
类没有相关Person
实体的任何属性。
我没有在网上找到任何这种情况的例子,我只是找不到合适的组合。代码优先配置总是让我感到困惑。
这是我找到的最接近的一个例子,但是我得到Invalid column name 'HomeAddressID'
,这告诉我,我可能正在映射错误的关系。
public class PersonConfiguration : EntityTypeConfiguration<Person>
{
// other mappings
HasOptional(p => p.HomeAddress)
.WithOptionalPrincipal()
.Map(x => x.MapKey("HomeAddressID"));
HasOptional(p => p.WorkAddress)
.WithOptionalPrincipal()
.Map(x => x.MapKey("WorkAddressID"));
}
我是在正确的轨道上吗?
答案 0 :(得分:1)
您可以将HomeAddress和WorkAddress ID添加到人员类吗?如果是这样,这对我有用......
public class Person
{
public int? HomeAddressID { get; set; }
private Address _homeAddress;
public Address HomeAddress
{
get { return _homeAddress; }
set
{
_homeAddress= value;
HomeAddressID = value != null ? (int?)value.HomeAddressID : null;
}
}
}
public class PersonConfiguration : EntityTypeConfiguration<Person>
{
HasOptional(a => a.HomeAddress).WithMany().HasForeignKey(p => p.HomeAddressID);
}