使用ORM检索一些列

Was*_*RAR 1 .net c# entity-framework

我正在使用Entity Framework和SQL Server 2008以及Database First方法.

我的问题是:

我有一些表可以容纳许多列(~100),当我尝试检索很多行时,它会在返回结果之前花费很长时间,即使有时我只需要使用该表中的3或4列.

我在Stackoverflow中通过了半天试图找到解决这个问题的方法,我想出了两个解决方案:

  • 使用存储过程检索包含我想要的列的数据.
  • 编辑.edmx(xml)和.cs文件以删除我不会使用的列.

我的问题是:

  • 如果我使用存储过程来检索具有我想要的列的数据,Entity Framework会使它失去优势,我可以使用ADO.NET代替它并直接调用存储过程...

  • 我不能采取第二种解决方案,因为每次我在数据库中进行更改时,我都不得不重新生成.edmx文件并且我放弃了之前所做的更改:'(

有没有办法在Entity Framework中以某种方式执行此操作?这可能!

我知道其他ORM存在,如NHibernateDapper,但我不知道他们是否可以提供此功能而不会造成很多痛苦.

Jac*_*tti 5

您不必每次都返回每列.您可以指定所需的列.

var query  = from t in db.Table
             select new { t.Column1, t.Column2, t.Column3 };
Run Code Online (Sandbox Code Playgroud)