C#对实体的LINQ选择字符串混淆NotSupportedException
本文关键字:字符串 NotSupportedException 选择 LINQ 实体 | 更新日期: 2023-09-27 18:29:03
嗨,我有这个LINQ,在我的DB中有一行ind kalk表,MedID="---"和KalkID="00057",如果我对它们进行硬编码,一切都正常,但如果我从字符串[]的stVar中获得它们,我会得到NotSupportedException:
ObjectSet<Kalk> kalks = ke.Kalks;
var query =
from kalk in kalks
where kalk.MedID.Equals(stVar[0])//"---"
&& kalk.KalkID.Equals(stVar[1])//"00057"
select new
{
MedID = kalk.MedID,
KalkID = kalk.KalkID,
Navn = kalk.Navn,
ValutaID = kalk.ValutaID,
Sprog = kalk.Sprog,
Dato = kalk.Dato,
SidstRettet = kalk.SidstRettet,
SidstRettetAf = kalk.SidstRettetAf,
Afrunding = kalk.Afrunding,
Kurs = kalk.Kurs,
id = kalk.id
};
foreach (var item in query)
{
MessageBox.Show(item.MedID + item.Navn);
}
试试这个:
ObjectSet<Kalk> kalks = ke.Kalks;
// Linq-to-SQL (or EF or whichever LINQ provider you use) probably doesn't
// support array indexers, so put your strings in variables beforehand
var medID = stVar[0];
var kalkID = stVar[1];
var query =
from kalk in kalks
where kalk.MedID.Equals(medID) //"---"
&& kalk.KalkID.Equals(kalkID) //"00057"
select new
{
MedID = kalk.MedID,
KalkID = kalk.KalkID,
Navn = kalk.Navn,
ValutaID = kalk.ValutaID,
Sprog = kalk.Sprog,
Dato = kalk.Dato,
SidstRettet = kalk.SidstRettet,
SidstRettetAf = kalk.SidstRettetAf,
Afrunding = kalk.Afrunding,
Kurs = kalk.Kurs,
id = kalk.id
};
foreach (var item in query)
{
MessageBox.Show(item.MedID + item.Navn);
}