我正在编写一个 MVC 5 互联网应用程序,并且有一个关于使用 IQueryable 的问题。
如果我将一组 DbSet 对象作为 IQueryable 检索,并且我没有引用每个 DbSet 对象中的某些属性,那么在使用 IQueryable 时是否会检索这些属性的值?这是使用 IQueryable 而不是 IEnumerable 的优势吗?
我试图确定从许多 DbSet 对象中检索值的最有效方法,其中我没有引用每个 DbSet 对象中的每个属性。
提前致谢。
编辑
在这种情况下怎么办:
如果我有如下模型:
public class TestModel
{
[Key]
public long Id { get; set; }
public string name { get; set; }
public string value { get; set; }
}
我检索上述对象的 DbSet 如下:
IQueryable<TestModel> testModels = await db.testModels(t => t.name.Equals("Test"));
我遍历上面的 IQueryable,检索name
属性,是否曾经从数据库中检索过Id
和值?value
编辑2
在这种情况下怎么办:
如果我将一些 TestModel 作为 IQueryable 检索,然后遍历它们,然后调用 IQueryable 具有相同名称的完全相同的代码,是否对数据库进行了两个事务?