Linq查找方法为IQueryable

WPa*_*ini 8 c# linq entity-framework iqueryable

我在我的存储库中有这个,它按预期工作:

public virtual EntityClass GetById(int id)
{
    return db.Set<EntityClass>().Find(id);
}
Run Code Online (Sandbox Code Playgroud)

但是,我有一些表有太多的列(例如:10列,我只需要3个)或一些表,我在那里有长文本,再次,他们不需要被提取.

我在想是否有办法仍然可以通过主键搜索但可能获得IQueryable结果?或者至少可以让我做这样的事情:

var blah = myRepo.GetById(myId).Select(s => new {column 2, column 3, column 7})
Run Code Online (Sandbox Code Playgroud)

Mik*_*son 0

var blah = myRepo.Where(s => s.Id == myId).Select(s => new {column 2, column 3, column 7}).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

如果您打算在选择中包含 Id,您可以执行以下操作:

var blah = myRepo.Select(s => new {column 2, column 3, column 7}).FirstOrDefault(s => s.Id == myId);
Run Code Online (Sandbox Code Playgroud)