2012-03-27 111 views
1

嗨我有這個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

回答

3

試試這個:

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