Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC4.0中的存储库模式_C#_Asp.net Mvc_Repository Pattern - Fatal编程技术网

C# MVC4.0中的存储库模式

C# MVC4.0中的存储库模式,c#,asp.net-mvc,repository-pattern,C#,Asp.net Mvc,Repository Pattern,我有一个项目是在MVC4.0。该项目已经将EF包含在it nad中,使用其类和数据库优先的方法。我必须使用存储库模式在其中做一些工作。我读过很多博客,但仍然对如何将实体框架与存储库真正集成感到困惑。从哪里开始。我正在读这个 解释还可以,但我如何合并这两个概念。我尝试的是创建一个模型类,正如上面链接所建议的那样,但在学生类的上面链接中,他们使用了Icollection列表,其中注册是数据库中的表。我还将我的表名传递给列表,但不起作用 整个过程我都做了。请告诉我这是对还是错 步骤1:我创建了一个名为

我有一个项目是在MVC4.0。该项目已经将EF包含在it nad中,使用其类和数据库优先的方法。我必须使用存储库模式在其中做一些工作。我读过很多博客,但仍然对如何将实体框架与存储库真正集成感到困惑。从哪里开始。我正在读这个

解释还可以,但我如何合并这两个概念。我尝试的是创建一个模型类,正如上面链接所建议的那样,但在学生类的上面链接中,他们使用了Icollection列表,其中注册是数据库中的表。我还将我的表名传递给列表,但不起作用

整个过程我都做了。请告诉我这是对还是错 步骤1:我创建了一个名为School的数据库 步骤2:我在项目中添加了实体框架。 步骤3:我现在正在创建一个与Student表具有相同属性的模型。 第四步:我现在被绊倒了。如何创建Icollection?? 请尽快提供帮助。我将非常感谢你。

看看这个问题,我认为它描述得很好

这是您可以使用的完整软件包

还有一个链接:


但在实现存储库模式之前,我建议您考虑一下“您真的需要它吗?”。

下面是一个您可能会发现有用的示例:

如果您希望看到存储库如何实现的真实场景,那么我建议您查看一些开源项目

Nop商务 使用存储库模式和依赖项注入

视频 还有关于建立MVC店面的ASP.NET视频系列(免费)

开放存取样本 Telerik有一些使用ORM(OpenAccess)的好例子。即使它使用不同的ORM,存储库模式仍然适用于EntityFramework。

以下是一些文章,解释了关于存储库模式的基本知识,以及源代码示例

公共类AccountBrandRepository:GenericRepository
{   
测试性——上下文;
公共测试存储库(IUnitOfWork unitOfWork)
:基本(作为实体的工作单元)
{
如果(unitOfWork==null)
抛出新的ArgumentNullException(“unitOfWork”);
_上下文=作为测试的工作单元;
}
}

是一篇关于我在自己的项目中实现的通用存储库模式的信息非常丰富的文章,我推荐它。有人能告诉我在代码优先方法中存储库模式必须遵循的步骤吗?但是项目中已经有实体框架。求你了,这对我很有帮助。是一本实用教程,您可以阅读并在应用程序中实现此模式。非常同意@Avenged question,这里有一篇关于它的文章:我同意“您真的需要它吗”?对于某些业务逻辑,我经常使用一个简单的服务“层”。数据访问可以通过ORM进行。也就是说,我的应用程序通常较小,一次只能有不到100个用户。存储库模式对于大型应用程序可能更有用。也许您可以为答案添加一些上下文?
public class AccountBrandRepository : GenericRepository<AccountBrand>
{   
     TestEntities _context;

     public TestRepository(IUnitOfWork unitOfWork)
         : base(unitOfWork as VoltEntities)
     {
         if (unitOfWork == null)
             throw new ArgumentNullException("unitOfWork");
         _context = unitOfWork as TestEntities;
     }
}