C#LINQ to Entities选择字符串混淆NotSupportedException
问题描述:
嗨我有这个LINQ,并在我的数据库中有一个行med ind =“---”和KalkID =“00057”的kalk表,如果我在一切工作但是,如果我从我的stVar这是一个String []让他们我得到NotSupportedException异常:C#LINQ to Entities选择字符串混淆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);
}
+0
是的,但为什么linq不支持数组索引器? – pylover 2012-03-27 10:18:38
是MedID和KalkID字符串类型?如果不尝试'kalk.MedID.ToString()。Equals(strVar [0])' – 2012-03-27 09:31:11