我试图掌握使用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