0

我很难找到正确的 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"));    
}

我在正确的轨道上吗?

4

1 回答 1

1

您可以将 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);
}
于 2014-09-04T21:05:59.807 回答