0

您会在 Entity Framework 5.0 上看到我的模型结构,并且 User 实体持有对 Address 和 Address1 实体的引用。另一方面,地址将用户集合作为参考,但实体框架不知道用户依赖于哪个地址参考,所以我遇到了异常。

有哪些解决方案?我的意思是流利和不流利的解决方案。

public class User
{
    public int Id { get; set; }

    public Address Address { get; set; }

    public Address Address1 { get; set; }
}

public class Address
{
    public int Id { get; set; }

    public ICollection<User> Users { get; set; }
}
4

1 回答 1

1

第一步是在 User 类中包含外键:

public class User
{
    public int Id { get; set; }
    public int AddressId { get; set; }
    public int Address1Id { get; set; }

    public Address Address { get; set; }

    public Address Address1 { get; set; }
}

流畅的 API 映射:

modelBuilder.Entity<User>()
            .HasRequired(a => a.Address)
            .WithMany()
            .HasForeignKey(u => u.AddressId);

modelBuilder.Entity<User>()
            .HasRequired(a => a.Address1)
            .WithMany()
            .HasForeignKey(u => u.Address1Id);

更多细节在这里:

http://weblogs.asp.net/manavi/archive/2011/05/01/associations-in-ef-4-1-code-first-part-5-one-to-one-foreign-key-associations。 aspx

于 2012-12-18T17:32:34.230 回答