進一步旋轉previous question我有。比方說,我繼承了BlogEntry和Post from 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; }
}
現在我創造我的自定義對象上下文:
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; }
}
這給了我其實是相當以下描述性錯誤消息:
試驗方法拋出異常: System.ArgumentException:有 沒有爲 指定的實體類型「BlogEntry」定義EntitySets。如果 'BlogEntry'是派生類型,則改爲使用 基本類型。例如,如果您調用 CreateObjectSet() ,並且DiscontinuedProduct是已知的 實體類型,但您沒有將 直接映射到EntitySet,則您會發現此錯誤。 DiscontinuedProduct類型可能是 派生類型,其中父類型爲 映射到EntitySet或 DiscontinuedProduct類型可能根本不是 映射到EntitySet。 參數名:TEntity
現在我沒有繼承和東西,但我認爲這將是一組參賽作品和評論的添加爲對象集<郵報>,將解決我的問題的方式的高手?
是啊,我還沒來得及看它進一步。你說的話聽起來不錯。我剛寫完一篇關於我今天發現的博客文章。看起來我不得不在明天再寫一篇關於POCO繼承的文章:) – mhenrixon 2009-05-28 22:57:22
感謝剛剛刪除小包的提示! :) – mhenrixon 2009-05-29 01:20:41