gpt4 book ai didi

asp.net-mvc - asp中的存储库模式。净 mvc3

转载 作者:行者123 更新时间:2023-12-04 05:40:43 25 4
gpt4 key购买 nike

我最近开始自学 C# 和 Asp.net。我正在尝试构建一个简单的博客应用程序。我对存储库模式的使用感到困惑。我看过的教程很少,实现方式各不相同。

对于我的博客应用程序,我有两个数据库表(模型)——博客和评论。目前,我有一个 IDbContext,它看起来像这样:

    public interface IDBContext
{
IQueryable<Blog> FindAllBlogs();
IQueryable<Blog> FindBlogsInMonth(int month);
Blog GetBlog(int id);
void Add(Blog blog);
void Update(Blog blog);
void Delete(Blog blog);

void Add(Comment comment);
//void Remove(Comment comment);
}

我有一个看起来像这样的存储库:
    public class BlogRepository : IDBContext
{
private BlogDb db = new BlogDb();

public IQueryable<Blog> FindAllBlogs()
{
return db.Blogs.OrderByDescending(b => b.PublishDate);
}

public Blog GetBlog(int id)
{
return db.Blogs.Single(b => b.BlogID == id);
}
...
}

存储库模式的另一个实现是这样的:
public interface IDbContext
{
IQueryable<Blog> Blogs { get; }
IQueryable<Comments> Comments { get; }
int SaveChanges();
T Attach<T>(T entity) where T : class;
T Add<T>(T entity) where T : class;
T Delete<T>(T entity) where T : class;
}

它调用存储库,并且有单独的查询类。

最好的方法是什么?

最佳答案

最简单的方法是直接使用 Entity Framework,尤其是在 Entity Framework 4.1 及更高版本中出现的新 DbContext 功能。

上下文将包含 DbSet 属性 - 每个属性都是实现上述所有目标的存储库模式的实现。如果需要单元测试支持,可以使用 IDbSet。

我在网上看到了很多 ASP.NET MVC 存储库模式的演示,这些演示最终用自定义存储库包装了 Entity Framework 。这是浪费时间——它是包装其他代码的代码,除了增加不必要的复杂性之外,没有任何直接目的。

关于asp.net-mvc - asp中的存储库模式。净 mvc3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com