我将实体框架和 SQL Server 2008 与数据库优先方法一起使用。
我的问题是:
我有一些包含很多列(~100)的表,当我尝试检索很多行时,它需要很长时间才能返回结果,即使有时我只需要使用该表中的 3 或 4 列.
我在 Stackoverflow 中度过了半天,试图找到解决这个问题的方法,我想出了两个解决方案:
- 使用存储过程检索包含我想要的列的数据。
- 编辑 .edmx (xml) 和 .cs 文件以删除我不会使用的列。
我的问题又是:
如果我使用存储过程来检索包含我想要的列的数据,Entity Framework 会失去它的好处,我可以使用 ADO.NET 代替它并直接调用存储过程......
我不能采用第二种解决方案,因为每次我在数据库中进行更改时,我都必须重新生成 .edmx 文件并且我会丢失之前所做的更改:'(
有没有办法在实体框架中以某种方式做到这一点?这可能吗!
我知道存在其他 ORM,例如NHibernate或Dapper,但我不知道他们是否可以提供此功能而不会造成很多痛苦。