Csharp/C#教程:返回选定的指定列分享


返回选定的指定列

我想从某个(Blobs)表中只选择几列。 我有以下字段:Id,RowVersion,Size,Signature,Blob,我想只选择前四个。 我这样做:(—>是一个错误的地方)

public List GetAllBlobsNames() { RichTekstModelDataContext dc = new RichTekstModelDataContext(); var allBlobs = from b in dc.Blobs orderby b.RowVersion descending select new {b.Id, b.Size, b.Signature, b.RowVersion}; ---> allBlobs.ToList(); } 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; } } 

当我尝试返回BlobDetails时发生错误 – 因为VS.08不知道如何从匿名类型(allBlobs)转换为List。

我不想选择所有值,因为Blob字段可能很重,我不想一直发送它。

你知道如何正确地做到这一点吗?

如果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(); 

然而; 如果BlobDetails LINQ实体,则需要使用subrefuge:

 var qry = from b in dc.Blobs orderby b.RowVersion descending select new {b.Id, b.Size, b.Signature, b.RowVersion}; var typedQry = from b in qry.AsEnumerable() select new BlobDetails { Id = b.Id, Size = b.Size, Signature = b.Signature, RowVersion = b.RowVersion}; return typedQry.ToList(); 

AsEnumerable打破了LINQ组合,使其工作。

使用“select new {”,您将创建一个无法隐式转换为BlobDetails的匿名类型。 相反,在select中明确声明要新建的类型:

上述就是C#学习教程:返回选定的指定列分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 var allBlobs = from b in dc.Blobs orderby b.RowVersion descending select new BlobDetails {Id = b.Id, .... }; allBlobs.ToList(); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1022303.html

(0)
上一篇 2022年1月7日
下一篇 2022年1月7日

精彩推荐