我参考这个例子:返回选定的指定列
Quote: 如果 BlobDetails 不是 LINQ 实体,那么你可以直接这样做:
var qry = from b in dc.Blobs
orderby b.RowVersion descending
select new BlobDetails {
Id = b.Id, Size = b.Size,
Signature = b.Signature, RowVersion = b.RowVersion};
return qry.ToList();
我看到他们正在通过 ORM 工具 LINQ TO SQL 选择查询中的特定列。ORM 工具的批评者说,如果我没记错的话,ORM 工具从表中选择并返回整个对象,并限制了仅选择特定列的选项,就像通过经典 SQL 编程可以做到的那样。当然,当我看到这个例子时,我对此表示怀疑,但是,我仍然一直在问自己这个问题:数据库是只返回选定的列,还是返回整个对象,将列过滤留给ORM 工具?
在这个例子中,他们还有一个名为 Blobdetails 的类:
public class BlobDetails
{
public int Id { get; set; }
public string Signature { get; set; }
public int Size { get; set; }
public System.Data.Linq.Binary RowVersion { get; set; }
}
每次我只想通过 LINQ 从表中选择几列时,是否需要创建自己的类?