1

両方のテーブルに主キーが含まれていない場合、Entity Framework Code-Only を使用して、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);
    }
}

BlogPost オブジェクトの Username プロパティを User テーブルの username 列にマップしたいと考えています。デザイナーを使用して外部キーを使用してマッピングを行うことはできますが、コードのみを使用してそれを行う方法がわかりません。構成オブジェクトで 2 つの MapHierarchy ステートメントを使用しようとしましたが、両方のテーブルが同じ主キーを使用している場合にのみ機能するようです。

4

1 に答える 1

0

EntityFrameworkの現在の状態ではこれは不可能だと思います。

エンティティ分割を行うには、1対1のマッピングが必要です(主キーは両方のテーブルにある必要があります)。

デザイナの2番目のテーブルから列を追加できるため、コードが実際に機能すると仮定するという私の探求は間違っていました。コードのみを使用する場合と同様に、EDMXでマッピングを実行しようとすると非常によく似たエラーが発生します。

于 2010-01-06T22:36:14.270 に答える