0

我有在 MVC 3 上开发市场的项目,我自己从 ASP.net/MVC 学习 MVC

在教程和示例中,我学会了使用数据库 CRUD 功能,可以通过在模型中定义属性和创建模型实体轻松地使用 EF 完成。

我最近聘请了一名程序员来编写该项目的代码。他建议通过编写 SQL 语句来实现数据库 CRUD 功能的方法,就像我们通过定义数据模型为 Web 表单所做的那样。他说在 MVCMusicStore 中使用规定的方法会在以后产生问题,就像任何其他程序员将更改 Model 属性一样,它会更新数据库并且可能会出现问题。

我不知道使用 MVC 进行数据库交互的大型项目的最佳实践。

4

3 回答 3

1

ASP.NET MVC 不与实体框架绑定。Inded MVC 不关心您使用的数据访问方法是什么。MVC 是一个开发 Web 应用程序的框架。它不担心数据访问方法。您可以使用实体框架/LinqToSQL/NHinernate/ADO.NET 等。

那里的示例项目通常在视图中使用模型类(您的域模型)。但是当您开始为项目编写代码时,您将了解将模型与在视图中使用分离并为这些视图创建单独的 POCO 类的需要。我们称它为 ViewModel。我们将这些 ViewModel 映射到介于两者之间的域模型。这给了我们更多的灵活性。但请记住,没有必要为每个模型都有 ViewModel。仅根据需要创建那些。

查看存储库模式。在那里有你的数据访问方法。这些数据访问方法的实现可以使用任何数据访问方法(LINQ/EF 等...)。使用 EF 的优势在于,您不需要自己编写大量代码。

于 2012-08-27T02:13:27.703 回答
0

我喜欢 EF Code First 功能。当您有团队在系统的不同部分工作时,这是一个非常好的功能。您不需要每次都删除并重新创建所有数据库。查看这篇文章以获取有关 EF 初始化程序的更多信息:http: //www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm

于 2012-08-27T01:54:08.517 回答
0

您应该首先查看实体框架代码。查看 Scott Gu 关于使用实体框架进行代码优先的博客文章:http ://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx

代码优先支持更改模型,而不必完全重做数据库。

于 2012-08-27T02:02:47.077 回答