我試圖掌握使用EF爲即將到來的項目。EF6和業務邏輯層
目前我有這段代碼第一碼:
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public virtual List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
}
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
這創建了數據庫和表,我已經能夠添加博客/後沒有問題。但我對如何構建EF代碼第一種方法感到困惑。
Blog
和Post
是否應該引用BloggingContext
然後有它們自己的get/add/update方法?
我是否應該創建單獨的BlogManager
/PostManager
類,它們實際上會獲取/添加/更新數據並僅返回實體對象?
我應該創建單獨的類,它們繼承自包含get/add/update方法的Blog
/Post
嗎?
我認爲你應該不要做任何事情,因爲你所需要的只是在你的代碼示例中。 DbContext中的DbSet具有跟蹤實體的機制。當你打電話給'dbContext.SaveChanges()'時,所有跟蹤的更改都會轉到Datebase – 2014-11-06 19:31:28
你通常想要創建'IBlogRepository'和'IPostRepository'接口以及包裝你的'BloggingContext'的相應實現。這樣您就可以從業務邏輯類中抽象出ORM的實際實現和用法。 – 2014-11-06 19:33:31