Asp.net mvc 使用LINQ和ADO.NET实体数据模型

Asp.net mvc 使用LINQ和ADO.NET实体数据模型,asp.net-mvc,linq,entity-framework,Asp.net Mvc,Linq,Entity Framework,是否可以在项目中同时使用LINQ和ADO.NET实体数据模型?我有一个基于先前用户的ADO.NET实体数据模型构建的项目,并且有.edmx文件,但我习惯于硬编码,通过ADO.NET打开连接 在MVC项目中同时使用这两种语言会有问题吗?Linq只是用C#编写sql的一种方法。其实远不止这些。但在这种情况下,无论您在哪里放置一些sql,您都使用linq intead,因此就EF而言,它是不可知的。或任何其他框架 真正的好处是,您可以考虑使用sql数据库以外的其他数据库来实现持久性。LINQ(语言集成

是否可以在项目中同时使用LINQ和ADO.NET实体数据模型?我有一个基于先前用户的ADO.NET实体数据模型构建的项目,并且有.edmx文件,但我习惯于硬编码,通过ADO.NET打开连接


在MVC项目中同时使用这两种语言会有问题吗?

Linq只是用C#编写sql的一种方法。其实远不止这些。但在这种情况下,无论您在哪里放置一些sql,您都使用linq intead,因此就EF而言,它是不可知的。或任何其他框架

真正的好处是,您可以考虑使用sql数据库以外的其他数据库来实现持久性。

LINQ(语言集成查询)是C#中的TSQL(是的,我们可以查询xml、lamda表达式等,但更多的是用于TSQL…),您可以针对LINQ to sql(.dbml)或实体框架(.edmx)编写LINQ查询通过创建每个对象的上下文,调用EF Object.AddToObject(o)和LINQ to SQL Object.InsertOnSubmit(o)和.Savechanges()/Submitchanges()中的方法会有一些不同 LINQ to SQL仅支持MS SQL server,但EF也可以支持其他数据库,如MY SQL等


如果您在项目中使用了其中的任何一个,您仍然可以在项目中的任何地方使用旧的Ado.net,方法是向方法提供适当的信息,或者在打开连接后通过传递参数来调用存储过程,就像我们以前做的那样……

有两种Linq

Linq到对象和Linq到SQL

LINQtoSQL不能在ADO模型上工作,因为它需要直接链接到SQL

但是linqto对象将像其他对象一样轻松地处理ADO模型对象


实际上,所有这一切意味着,如果在项目中使用实体模型(.edmx)的dbcontext,我也可以编写以下连接,而不必使用系统中的问题,使用两者,而不用管理DB Linq中查询的构造,让ADO来处理它,您不会看到任何差异?使用(SqlConnection cn=newsqlconnection(connectionString)){…cn.Open();…}您可以,但是您需要考虑一下您要做什么。你的模型可能会说一件事,而一些带外功能会说另一件事,这就是bug炖肉的配方。谢谢。那么,您是否在一些.edmx设置中使用旧的ado.net?我只是习惯了旧的做事方式。它似乎没有那么复杂。edmx,但仍然以优异的效果完成了工作。我们大多数时间都使用LINQ to SQL,因为我们的客户端只使用SQL server,而且您知道您只使用SQL server,那么LINQ to SQL比EF快。。。。但我们必须为旧方法编写大量代码,比如您必须自己在SP和C中编写CRUD。我们仅在复杂场景中使用存储过程……当一个存储过程根据您的需要工作时,两者都使用是没有意义的。。。。。但是,如果必须同时使用这两种方法,只需添加.edmx和.dbml并创建context n查询数据库即可