我很难找到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"));
}
我走对了吗?
您能将HomeAddress和WorkAddress ID添加到person类中吗?如果是这样,这对我有效…
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);
}