Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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 Asp.net Mvc:使用LINQ到SQL创建模型类_Asp.net Mvc_Repository Pattern - Fatal编程技术网

Asp.net mvc Asp.net Mvc:使用LINQ到SQL创建模型类

Asp.net mvc Asp.net Mvc:使用LINQ到SQL创建模型类,asp.net-mvc,repository-pattern,Asp.net Mvc,Repository Pattern,我正在尝试学习Asp.NETMVC,所以我正在尝试 教程 他们讨论了存储库模式,以及如何轻松地切换到另一种数据访问技术,而不只是直接调用Linq到Sql 在控制器类中使用LINQ到SQL使得将来很难切换数据访问技术。例如,您可能决定从使用Microsoft LINQ切换到SQL,使用Microsoft实体框架作为数据访问技术。在这种情况下,您需要重写应用程序中访问数据库的每个控制器。 注意:在阅读本教程之前,我从未真正理解过界面是如何工作的,现在还不是100%清楚。我现在把它看作是类的某种“模板

我正在尝试学习Asp.NETMVC,所以我正在尝试 教程

他们讨论了存储库模式,以及如何轻松地切换到另一种数据访问技术,而不只是直接调用Linq到Sql

在控制器类中使用LINQ到SQL使得将来很难切换数据访问技术。例如,您可能决定从使用Microsoft LINQ切换到SQL,使用Microsoft实体框架作为数据访问技术。在这种情况下,您需要重写应用程序中访问数据库的每个控制器。 注意:在阅读本教程之前,我从未真正理解过界面是如何工作的,现在还不是100%清楚。我现在把它看作是类的某种“模板”

在成功地使用Linq to Sql之后,我认为尝试Ado.net实体框架会很好,因为我已经阅读了很多关于这方面的内容。他们说使用存储库模式将使切换更容易,所以我想我会对此进行测试

我的问题是:我应该怎么做才能更改为Ado.net EF

这是我认为我应该做的

  • 添加Movie.edmx文件并对其进行配置(添加我的电影表)
  • 基于IMovieRepository编写一个新类,可能称之为MovieRefository
  • 将控制器构造函数中的参数更改为MovieEFRepository。这是我发现的第一件奇怪的事情,因为在教程中,他们说如果您更改为其他数据源,不使用存储库将迫使您更改所有控制器。既然我指定了MovieRepository类,我不需要更改每个控制器吗
  • 我认为我需要做的最后一个调整是改变观点。因为它使用的是由LINQtoSQL设计器创建的产品类。我不知道该怎么做。我想我应该使用一些不依赖于dbml文件的对象

如果我对Asp.net Mvc有一点过于简单的看法,请原谅。我是一名Web设计师,对Asp.net Web开发非常感兴趣。

您可能会因为注入而使存储库解耦,而不是因为

publicmoviescontroller():这个(新的**MovieRepository**())

我建议你们阅读有关IOC的内容,很简单也很有趣,你们可以使用像温莎城堡这样的IOC容器

这样,您的控制器将只有一个构造函数,即带有接口的构造函数,而不需要更改

对于您的实体,您可以执行与控制器相同的操作,为每个实体创建一个接口,并使用ioc模式,使用该模式,您只需更改ioc容器的配置文件

如果你不做这些事情,你的权利,你将需要改变你所说的一切


我希望这对你有帮助!对不起我的英语

因此,经过几天的阅读和大量的谷歌搜索,我让它开始工作了。首先,我试图找出IoC(控制反转)的真正含义

我发现的第一个网站是一个关于Unity的网站。它是.Net的DI/IoC框架

  • 链接:
现在来看,这实际上是一个非常好的屏幕广播,并且是一个关于Unity和IoC/DI的易用性的例子。当时我并不完全理解,所以我继续用谷歌搜索

我经常访问的一个网站是马丁·福勒(Martin Fowler)的网站

  • 链接:
对我来说,这个网站的编码新手有点抽象。这听起来可能很奇怪,但网站上的字体、线条高度和排版都非常糟糕,这使得它更难阅读

我读到的下一个网站是关于温莎城堡的,因为阿尔弗雷多·费尔南德斯说它很容易使用

  • 链接:
文档还不错,但我在将其“入门”基本示例转换为Asp.net Mvc应用程序时遇到了一些问题。此外,第2部分和第3部分在开始时也丢失了

在此之后,我开始寻找不同的框架,看看是否能找到一个真正基本的例子。如果我再看一次第一部电影,我会很快修复它,但不知何故我失去了它的踪迹

  • Link::关于大多数.NETIOC解决方案的非常好的博客文章
  • 使用xml配置文件对我来说太复杂了,我无法让它工作
  • Link::没有尝试此示例。现在看,我可能已经能够让它工作了
  • Link::这为Asp.net Mvc添加了功能。它还内置了3或4个IOC控制器工厂。我不能让它工作,我也没有找到很多关于这个的文档
我对xml配置文件有很多问题,似乎无法让它们正常工作。我尝试了Windsor、Structure Map和Spring.net,但我总是被xml文件卡住

所以我决定去Asp.NETMVC网站,因为那是我开始学习Asp.NETMVC的地方。我发现第一次的屏幕广播和MIX09演示非常清晰,我理解人们谈论的大部分内容。在构建店面应用程序时,我被Rob Conry的第二个屏幕截住了。因为我对存储库和IOC/DI有了更多的了解,所以现在我想再次开始观看Rob Conry的屏幕广播是个好主意。在其中一个屏幕广播中,他谈到将所有样本上传到codeplex

  • 链接:
我去了codeplex,发现你可以浏览源文件而无需下载它们。我试图找出Rob Conry是如何使用他的存储库处理IOC/DI的。所以我很高兴看到他使用的是结构映射,但他没有使用xml配置文件,而是使用了一个引导程序类,该类将所有接口注册到它们的具体类中

在我的网络应用程序中尝试了这一点之后,我最终成为了一名