Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
Asp.net mvc 2 实体框架4.0和POCO类-存储库模式?_Asp.net Mvc 2_C# 4.0_Entity Framework 4 - Fatal编程技术网

Asp.net mvc 2 实体框架4.0和POCO类-存储库模式?

Asp.net mvc 2 实体框架4.0和POCO类-存储库模式?,asp.net-mvc-2,c#-4.0,entity-framework-4,Asp.net Mvc 2,C# 4.0,Entity Framework 4,我正在用EntityFramework4.0编写一个asp.NETMVC2Web应用程序。我有应该显示项目的视图、用于登录的视图等。我应该使用存储库模式来构建项目吗?如果是,如何进行?我是否应该为添加、更新、删除等基本方法以及使用存储库进行登录验证等常用方法的另一个类创建一个接口?我将EF与存储库模式一起使用,它为我节省了大量工作 小呼吸模式简介: someRepository.Find.Where(something => something.IsRed && somet

我正在用EntityFramework4.0编写一个asp.NETMVC2Web应用程序。我有应该显示项目的视图、用于登录的视图等。我应该使用存储库模式来构建项目吗?如果是,如何进行?我是否应该为添加、更新、删除等基本方法以及使用存储库进行登录验证等常用方法的另一个类创建一个接口?

我将EF与存储库模式一起使用,它为我节省了大量工作

小呼吸模式简介:

someRepository.Find.Where(something => something.IsRed && something.IsBig)
创建一个名为“IRepository”的泛型接口,该接口的类型包含用于数据访问的所有方法

它可能是这样的:

interface IRepository<T> where T : class
{
    IEnumerable<T> FindAll(Func<T, bool> exp);

    T FindSingle(Func<T, bool> exp);
}   
以及用于实现它的匹配存储库:

class SeomthingRepository : Repository<Banner>, IBannerRepository
{
}
是的,这意味着您必须做一些工作,但以后更改数据源会更容易


希望有帮助

你能得到的最完整答案可能是:

需要阅读和理解的内容很多,但是如果您真的想了解如何将存储库模式与EF结合使用,那么这可能是最完整的源代码

下面可以找到一些简单的快速入门示例代码:


您还可以找到不同的变体+讨论(例如,从存储库返回
IQueryable的
是否是一个好主意,等等。

我应该如何构造我的应用程序?我在一个解决方案中有三个项目:第一个是web应用程序,第二个是带有自定义函数的框架,等等,最新的一个实际上只包含带有POCO类aut的EDMX文件由entity framework Designer和entity framework 4.0生成我没有DataContext类,所以我没有可用的GetTable方法…你是如何修复的?你给我的第一个链接是EF4 CTP4,目前正在预览…我可以使用它吗?CTP在文章的更新中提供。这些部分都已标记,因此如果你不想安装在所有CTP中,您可以使用较旧的代码(使用
ContextBuilder
)。如果您只想重用打包的源代码(从下载中),您当然可以安装CTP。不确定,实际上,他们正在计划一个上线许可证,但我不知道该许可证的状态。您可以在预发布论坛中询问:。然后,如果您不想,您也不必使用它。我应该将EF 4与POCO类一起使用,还是将NHibernate用于生产应用程序?这是一个完全不同的问题,它是这与存储库模式不相关吗?无论您选择哪种ORM,实现都非常相似。关于ORM比较,EF4和nHibernate都有优点和缺点,都适用于生产应用程序,这取决于您的选择。
interface ISomethingRepository : IRepository<Banner>
{
}
class SeomthingRepository : Repository<Banner>, IBannerRepository
{
}
SomethingRepository _repo = new SomethingRepository ();

_repo.Find.Where(something => something.IsRed && something.IsBig)