具有自定义列名的单面配置



我很难找到Fluent方法的正确组合来适当地映射我的类。这基本上就是我要做的:

Person table: PersonID, HomeAddressID (nullable), WorkAddressID (nullable)
Address table: AddressID, Street, etc...

Person类具有Address HomeAddressAddress 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);
}

最新更新