C# 如何在ASP.NET MVC中选择数据访问方法?
我用C#2.0 WinForms编程已经有一段时间了。我开始学习ASP.NET和新的MVC框架以及C#3.5的新特性。我只读了一点关于LINQtoSQL的内容,但已经制作了一些测试应用程序来尝试它。在我的WinForms应用程序中,我通常有某种数据访问层,并自己编写所有SQL。当然,如果有什么能帮我解决这个问题,我完全赞成 我遵循了www.asp.net/mvc网站上的教程,完成了实体框架示例和linqtosql示例。到目前为止,它们看起来都很相似。LINQ更像SQL,但实体框架更像C 我的问题是:C# 如何在ASP.NET MVC中选择数据访问方法?,c#,asp.net-mvc,linq-to-sql,entity-framework,C#,Asp.net Mvc,Linq To Sql,Entity Framework,我用C#2.0 WinForms编程已经有一段时间了。我开始学习ASP.NET和新的MVC框架以及C#3.5的新特性。我只读了一点关于LINQtoSQL的内容,但已经制作了一些测试应用程序来尝试它。在我的WinForms应用程序中,我通常有某种数据访问层,并自己编写所有SQL。当然,如果有什么能帮我解决这个问题,我完全赞成 我遵循了www.asp.net/mvc网站上的教程,完成了实体框架示例和linqtosql示例。到目前为止,它们看起来都很相似。LINQ更像SQL,但实体框架更像C 我的问题
2:LINQtoSQL的优点是简单(但仍然设计得很好),但缺点是简单-p
- LINQ to SQL仅在SQL Server上工作(实体框架是可插拔的;LINQ to SQL的第三方变体(如DBLinq)包括一些其他提供商)
- 实体框架支持数据(存储)模型和对象模型之间的更多抽象-LINQ to SQL是文字表/列=>类/属性[|字段]
- LINQ到SQL实际上在它所做的事情上更加“完整”:
- EF不支持UDF
- EF不支持子表达式调用(对于自定义表达式树)
- EF不支持一些“明显的”方法,如
Single()
- EF没有LINQtoSQL使用的一些TSQL优化
TextReader
分配给dataContext.Log
Console.Out
运行良好-或者我有一个可以写入trace.asax的。使用EF
4:我怀疑它的复杂性会导致很多问题。使用具有简单模型的SQL Server的人,或者乐于拥有一个适合对象模型的存储模型的人,目前倾向于使用LINQ to SQL(据我所见)。更复杂的人和其他数据库倾向于使用NHibernate-然后是一些EF。我想知道,当EF下一次在.NET 4.0中发布时,这会有多大的变化…2:LINQ to SQL具有简单的优点(但仍然经过良好的设计)-但简单的缺点-p
- LINQ to SQL仅在SQL Server上工作(实体框架是可插拔的;LINQ to SQL的第三方变体(如DBLinq)包括一些其他提供商)
- 实体框架支持数据(存储)模型和对象模型之间的更多抽象-LINQ to SQL是文字表/列=>类/属性[|字段]
- LINQ到SQL实际上在它所做的事情上更加“完整”:
- EF不支持UDF
- EF不支持子表达式调用(对于自定义表达式树)
- EF不支持一些“明显的”方法,如
Single()
- EF没有LINQtoSQL使用的一些TSQL优化
TextReader
分配给dataContext.Log
Console.Out
运行良好-或者我有一个可以写入trace.asax的。使用EF
4:我怀疑它的复杂性会导致很多问题。使用具有简单模型的SQL Server的人,或者乐于拥有一个适合对象模型的存储模型的人,目前倾向于使用LINQ to SQL(据我所见)。更复杂的人和其他数据库倾向于使用NHibernate-然后是一些EF。我想知道当EF下一次在.NET 4.0中发布时,这会有多大变化…使用对您、您的团队和您的项目最合适的版本。如何访问数据并不重要,只要访问数据就行
如果您愿意,您可以使用普通的旧ADO.NET。使用最适合您、您的团队和您的项目的ADO.NET。如何访问数据并不重要,只要访问数据就行
如果您愿意,您可以使用普通的旧ADO.NET。我忘了提到;LINQtoSQL(使用当前版本)有一个更好的POCO故事;由于对这个[和其他事情](见:)感到悲伤,我希望4.0版的POCO故事会更好。从Marc的描述来看,我认为我做的事情与他相似。(与此处使用的模式类似:)。在数据和服务层中一定要使用EF。将MSSQL集成映射回LINQ-SQL,但保留中间层EF-从长远来看,这将使您受益最大。@cottsak-如果您同时使用LINQ-to-SQL和EF,那么这与我的完全不同-皮忘了提;林克托