Linq.Count()在VB.NET中不存在,但在C#中存在
本文关键字:不存在 存在 但在 NET Count VB Linq | 更新日期: 2023-09-27 18:26:18
这个linq问题在c#和字段AntalVersioner=d.Count()中非常有效。
List<DokumentModel> result = (from d in response.Values
from c in d
//let dk = response.
select new DokumentMedDatumDTOModel()
{
DokumentId = c.DokumentId,
Forfattare = c.Forfattare,
Kommentar = c.Kommentar,
Nyckelord = c.Nyckelord,
AntalVersioner = d.Count(),
VersionNr = c.VersionNr,
Titel = c.Titel,
SkapadAv = c.SkapadAv,
OriginalFilNamn = c.OriginalFilnamn,
Versions = (from p in d
select new Version()
{
FilUppladdatDatum = p.FilUppladdadDatum,
OriginalFilNamn = p.OriginalFilnamn,
SkapadAv = p.SkapadAv,
Titel = p.Titel,
VersionNr = p.VersionNr
}).ToList(),
}).ToList();
当在VB.NET中尝试相同的事情时,d.计数()不存在
result = (From dokument In response.Values
From d In dokument
Select New DokumentMedDatumDTOModel With {.DokumentId = d.DokumentId, .Forfattare = d.Forfattare, .Kommentar = d.Kommentar, _
.Nyckelord = d.Nyckelord, .VersionNr = d.VersionNr, .Titel = d.Titel, .SkapadAv = d.SkapadAv, _
.OriginalFilNamn = d.OriginalFilnamn, _
.Versions = (From t In dokument
Select New DokumentVersion With {.Forfattare = t.Forfattare, _
.DokumentId = t.DokumentId, _
.FilUppladdatDatum = t.FilUppladdadDatum, _
.OriginalFilNamn = t.OriginalFilnamn, _
.SkapadAv = t.SkapadAv, _
.Titel = t.Titel, _
.Kommentar = t.Kommentar, _
.Nyckelord = t.Nyckelord, _
.VersionNr = t.VersionNr}).ToList()
}).ToList()
您的两个代码示例似乎在不同的类型上做着非常不同的事情。
例如,在C#中,您创建了一个模型:
select new DokumentMedDatumDTOModel()
但在VB中,您可以创建一个不同的模型:
Select New DokumentModel
因此,我怀疑无论使用何种语言,它们之间的一些事情都会有所不同。
更具体地说,如果d.Count()
在C#中"有效",让我们看看d
是什么:
from d in response.Values
from c in d
d
是response.Values
集合中的一个实例。但是它在VB中是什么?:
From dokument In response.Values
From d In dokument
CCD_ 5是来自CCD_ 6的实例的集合的实例。完全不同的对象。此VB代码中d.Count()
的"等价物"为:
dokument.Count();
编译器不检查变量的名称是否有任何内容,它只检查实例的类型。两个代码示例中的d
变量是完全不同的类型/实例。
我很难相信LINQ作为一个框架,对Vb的作用与C#不同。但也许是这样,然而计数函数是如此的基本,以至于我不得不相信还有其他地方出了问题。智能感知没有显示并不意味着它不存在。这只是意味着智能感知没有显示出来。在编写LINQ查询时,intellisense会在查询中出现错误时立即退出响应。
像这样简单地开始。
var stuff = db.Customers.ToList();
var count = stuff.Count();