質問

は、両方のテーブルに主キーが含まれていない場合はEntity Frameworkのコードは、2つのだけのテーブルからフィールドを持つエンティティを持って使用して彼らの方法はありますか?

ここでは一例である。

public class BlogPost
{
    public int PostID { get; set; }
    public String PostBody { get; set; }
    public int UserID { get; set; }
    public string Username { get; set; }
}

public class User
{
    public int UserID { get; set; }
    public String Username { get; set; }
}

public class BlogPostConfiguration : EntityConfiguration<BlogPost>
{
    public BlogPostConfiguration()
    {
        HasKey(b => b.PostID);
    }
}

public class UserConfiguration : EntityConfiguration<User>
{
    public UserConfiguration()
    {
        HasKey(b => b.UserID);
    }
}

私は、ブログ投稿のオブジェクトのユーザー名プロパティがUserテーブルのユーザ名の列にマップすることにしたいです。私は、デザイナーを使用して、外部キーを使用してマッピングを行うことができますが、私はコードのみを使用していることを行うするかどうかはわかりません。私は私の設定オブジェクトに2つのMapHierarchyステートメントを使用してみましたが、両方のテーブルたちと同じ主キーの場合にのみ動作しますように見えます。

役に立ちましたか?

解決

私は、これはEntity Frameworkの現在の状態では可能ではないと思います。

エンティティの分割を行うためには、1対1のマッピング(主キーは、両方のテーブルでなければなりません)。

を持っている必要があります

私はあなたのコードが実際に動作することをデザイナーに第二のテーブルから列を追加することができますので、と仮定して、私のquestingと間違っていました。コードのみ使用しているとき、私がそうであるようにEDMXにマッピングをやろうとしたとき、私は非常によく似たエラーを取得します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top