除Contains运算符外,本地序列不能用于查询运算符的LINQ to SQL实现

Bas*_*rdo 8 c# list linq-to-sql

我在Microsoft Report Viewer组件的网页上收到此错误:

报告处理期间发生错误.除Contains运算符外,本地序列不能用于查询运算符的LINQ to SQL实现.

我的代码:

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; }
            }

        }
Run Code Online (Sandbox Code Playgroud)

这个方法GetUrunListesiDoldur()基本上返回一个List<StokEnvanteriSatiri>列表StokEnvanterSatiri,我知道问题是我正在尝试使用SQL表加入内存列表.

有办法处理这个吗?

Bas*_*rdo 7

我基本上颠倒了join它并且它起作用了

var urunMD = from urunStokbilgileri in urunStok
             join urun in db.TBLP1URUNs
                       on urunStokbilgileri.UrunNo equals urun.ID
             join kategori in db.TBLP1URUNKATEGORIs
                       on urun.KATEGORIID equals kategori.ID
             ......
Run Code Online (Sandbox Code Playgroud)