私はprevious questionでさらに回転しています。 BlogEntryとPostからのコメントを継承しているとします。私は今それらを少しカスタマイズしたいです。ブログ記事へのコメントはタイトルを必要としませんが、私はポストからこのようなコメントやブログのエントリにこれらの二つのフィールドを移動するためのコメントは、ユーザの参照を必要とします:EF4 - カスタムObjectContextと継承に関する質問
public abstract class Post
{
public virtual int Id { get; set; }
public virtual string Text { get; set; }
public virtual DateTime CreatedAt { get; set; }
}
public class BlogEntry : Post
{
public virtual string Header { get; set; }
public virtual Blog Blog { get; set; }
public virtual IEnumerable<Comment> Comments { get; set; }
}
public class Comment : Post
{
public virtual string Header { get; set; }
public virtual int UserId { get; set; }
public virtual BlogEntry BlogEntry { get; set; }
}
今、私は私のカスタムオブジェクトコンテキストを作成します:
試験方法が例外を投げた: System.ArgumentExceptionの:があり
public class EntityContext : System.Data.Objects.ObjectContext { public EntityContext() : base("name=Entities", "Entities") { this.Blogs = CreateObjectSet<Blog>(); this.Posts = CreateObjectSet<Post>(); this.Entries = CreateObjectSet<BlogEntry>(); this.Comments = CreateObjectSet<Comment>(); } public ObjectSet<Blog> Blogs { get; set; } public ObjectSet<Post> Posts { get; set; } public ObjectSet<BlogEntry> Entries { get; set; } public ObjectSet<Comment> Comments { get; set; } }
これは私の次は実際には非常にわかりやすいエラーメッセージを表示します指定されたエンティティタイプ 'BlogEntry'の に定義されているエンティティセットがありません。 'BlogEntry'が派生型の場合は、代わりに 基本型を使用してください。たとえば、 CreateObjectSet() を呼び出し、DiscontinuedProductが既知の エンティティタイプですが、 をEntitySetに直接マップしていない場合、 にこのエラーが表示されます。 DiscontinuedProductタイプは、親タイプが がEntitySetにマッピングされているか、または DiscontinuedProductタイプが でEntitySetにまったくマッピングされていない 派生タイプである可能性があります。 パラメータ名:TEntity今
I午前ない相続とスタッフが、私は、これは私の問題を解決するだろうobjectSetと<ポスト>としてエントリーとコメントのセットを追加することです見る方法のマスター?
に役立ちます。あなたの言うことは真実です。私はちょうど私の発見についての巨大なブログ記事を今日書くのを終えました。私は明日別のPOCO継承について書く必要があるように見えます:) – mhenrixon
ちょうどバゲージを取り除くとチップのおかげで! :) – mhenrixon