我得到網頁上的這個錯誤,微軟報表查看器組件:本地序列不能在LINQ被用來查詢經營者的SQL實現除包含運營商
報告 處理過程中發生錯誤。本地序列不能是 用於LINQ to SQL實現的 查詢運算符,但Contains 運算符除外。
我的代碼:
public static IEnumerable GetUrunMiktarliDetayli()
{
Baglanti();
List<StokEnvanteriSatiri> urunListesi = new List<StokEnvanteriSatiri>();
urunListesi = GetUrunListesiDoldur();
var urunStok = from urunS in urunListesi
select new
{
urunS.AcilisMiktari,
urunS.MevcutMiktar,
urunS.UrunNo
};
var urunMD = from urun in db.TBLP1URUNs
join kategori in db.TBLP1URUNKATEGORIs
on urun.KATEGORIID equals kategori.ID
join a in urunStok
on urun.ID equals a.UrunNo
select new
{
DIGERGIRISLER = a.AcilisMiktari,
urun.URUNADI,
urun.URUNACIKLAMA,
kategori.TREENAME,
urun.STOKTURU,
urun.MARKA,
urun.MODEL,
urun.URUNTIPI,
urun.URUNDURUM,
urun.KRITIKSTOKMIKTARI,
urun.DEPOADI,
urun.YER,
urun.RAF,
urun.RAFOMRU,
KDVDAHILMI = urun.KDVDAHILMI==1 ? "EVET":"HAYIR",
urun.KDVORANI,
urun.SATFIYAT1,
urun.SATFIYAT1BIRIM,
urun.TEDFIYAT1,
urun.TEDFIYAT1BIRIM,
urun.HIZMETYENSURYIL,
urun.HIZMETYENSURAY,
urun.SATILANMIKTAR,
urun.IADEEDILENMIKTAR,
urun.KULLANILANMIKTAR,
urun.ZAYIMIKTAR,
urun.KONSINYECIKISMIKTAR,
urun.DIGERCIKISLAR,
urun.TEDARIKMIKTAR,
urun.IADEALINANMIKTAR,
urun.KONSINYEGIRISMIKTAR,
urun.EN,
urun.BOY,
urun.YUKSEKLIK,
urun.AGIRLIK,
urun.BOYUTAGIRLIGI,
urun.URUNKAYITTARIHI,
urun.GARANTISURESIBITIS,
urun.SONGUNCELLEMETARIHI,
urun.YENI,
urun.TESLIMATSURESI,
urun.TEDARIKCISTOKMIKTAR,
}
;
return urunMD;
}
public class StokEnvanteriSatiri
{
private string urunNo;
private string urunAdi;
private int acilisMiktari;
private int toplamTedarikMiktari;
private int toplamSatisMiktari;
private int mevcutMiktar;
private decimal satisFiyati;
private decimal toplamTutar;
private string paraBirimi;
public string UrunNo
{
get { return urunNo; }
set { urunNo = value; }
}
public string UrunAdi
{
get { return urunAdi; }
set { urunAdi = value; }
}
public int AcilisMiktari
{
get { return acilisMiktari; }
set { acilisMiktari = value;}
}
public int ToplamTedarikMiktari
{
get { return toplamTedarikMiktari; }
set { toplamTedarikMiktari = value; }
}
public int ToplamSatisMiktari
{
get { return toplamSatisMiktari; }
set { toplamSatisMiktari = value; }
}
public int MevcutMiktar
{
get { return mevcutMiktar; }
set { mevcutMiktar = value; }
}
public decimal SatisFiyati
{
get { return satisFiyati; }
set { satisFiyati = value; }
}
public decimal ToplamTutar
{
get { return toplamTutar; }
set { toplamTutar = value; }
}
public string ParaBirimi
{
get { return paraBirimi; }
set { paraBirimi = value; }
}
}
這種方法GetUrunListesiDoldur()
基本上返回StokEnvanterSatiri
一個List<StokEnvanteriSatiri>
名單,我知道的問題是,我想加入一個在內存中的列表與SQL表。
有什麼辦法可以解決這個問題嗎?
檢查實際正在執行的SQL,並確保您沒有在本地提取所有記錄,然後在內存中對其進行過濾。有可能這個「有效」通過將每個表視爲內存中的集合來檢索正確的結果。 Linq-to-Sql也很有可能在這裏創建一個適當的過濾查詢。我不確定。 – 2011-05-09 14:37:42
@Samuel謝謝你的建議Mr.Neff,我會盡力的。 – Bastardo 2011-05-09 15:02:42