ASP.NET MVC中的数据访问3
在实际的ASP.NET MVC应用程序中创建数据访问层的建议方式是什么?是EF吗? Ef Code First? NHibernate的?任何其他想法?ASP.NET MVC中的数据访问3
谢谢&问候
有没有推荐的方式。
我喜欢EF代码第一次这样做,因为
- 的源代码是很干净,容易阅读
- 这是很容易简单地改变ConnectionString中,并生成一个新的数据库,如果不是已经存在
- 如果您的模型已更改(无需重新创建数据库),则易于迁移数据库使用EntityFramework.SqlMigrations
- 如果您的数据库已存在,则可以使用Entity Framework Power Tools从您现有的数据库中生成模型和数据库上下文
尝试LINQ,我看到的大多数MVC产品都使用LINQ。
LINQ是一个与数据访问层交互的工具。它不会创建图层本身。 –
EF Code First对现实生活中重度使用的网站有多强大? – Bill
LINQ是一种编程模型,它将查询作为一流的概念引入到任何的Microsoft .NET语言中。 – RickAndMSFT
我喜欢使用Model First,因为它允许我在我看来最*地进行设计和实现。它也使得改变数据库设计变得非常容易。
我也首先喜欢模特,但我认为我们是少数派(不是大多数人必然是正确的)。我认为你可以从通过Model进行一些工作中受益。 – RickAndMSFT
没有,*充满了沿着各种路线走下坡路的人们,所以无论你做出哪种选择,你都可以得到帮助。
最好的建议,尝试使用几个似乎脱颖而出的方法做一些小探索网站。
不幸的是,真正的障碍并不倾向于在小型测试项目上显示,而是在真实项目上显示真实数据。 – Jan
不,但大多数方法都有各种障碍....没有完美,但它确实告诉你发展的风格是否符合你的想法。但是,是的,有一些并发症在蔓延! –
对每个原型类型都是一个好主意 - 即使你不会发现你在真实应用中遇到的很多问题。 – RickAndMSFT
MS上的MVC大师(写MVC的人)似乎都在使用实体框架。话说回来,你可以使用任何ORM(或真的是你想要的任何数据访问技术)作为MVC犯规实际上是在所有指定有关访问数据
1.并非所有MS的MVC人都只使用EF。 2.并非所有的MVC大师都为MS工作(实际上大多数都不)。你是对的,我们不告诉人们使用什么。 – RickAndMSFT
这一切都取决于你的需要的方式事情:
NHibernate的是一个大的社区比较成熟的ORM
实体框架现在正很好的支持,你还可以找到大量信息(check Julie Lerman blog)
两者均支持从数据库生成代码。
代码优先:允许您从域模型创建数据库模式。如果你不想打扰数据库,这很好。 NHibernate也可以做到这一点。
为了帮助您决定使用哪种方式实体框架
还有很多其他伟大的ORM:
*'s ORM Dapper如果性能是一个重要的标准有一个小笨蛋在网站上的hmark
NET ORMs:http://*.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql/ –