0

Entity Framework 5.0のモデル構造と、ユーザーエンティティがAddressエンティティとAddress1エンティティへの参照を保持していることがわかります。反対側では、AddressはUsersコレクションを参照として保持しますが、Entity Frameworkは、UsersがどのAddress参照に依存しているかを認識できなかったため、例外が発生しました。

そのための解決策は何ですか?流暢なソリューションと流暢でないソリューションをお願いします。

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 に答える