C#LINQ to Entities选择字符串混淆NotSupportedException

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); 
      } 
+0

是MedID和KalkID字符串类型?如果不尝试'kalk.MedID.ToString()。Equals(strVar [0])' – 2012-03-27 09:31:11

试试这个:

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