С приведенным ниже кодом я получаю эту ошибку
InvalidOperationException
:
Не удалось перевести выражение stok_getmiktar_byyapilanislem(urunler.ID,
"SATIS")
в SQL и не удалось обработать его как локальное выражение.
var urundb = (from urunler in db.TBLP1URUNs
orderby urunler.SERIAL
where (urunler.ID.Contains(FilitreText) || urunler.URUNADI.Contains(FilitreText))
&& ((kategori1.SERIAL == null) || urunler.SERIAL.StartsWith(kategori1.SERIAL))
select new
{
UrunNo = urunler.ID,
UrunAdi = urunler.URUNADI,
Marka = urunler.MARKA,
SatisFiyati = urunler.SATFIYAT1.GetValueOrDefault(0),//.ToString() + " " + urunler.SATFIYAT1BIRIM,
TedarikFiyati = urunler.TEDFIYAT1.GetValueOrDefault(0),//.ToString() + " " + urunler.TEDFIYAT1BIRIM,
PiyasaFiyati = urunler.SATFIYAT2.GetValueOrDefault(0),//.ToString() + " " + urunler.SATFIYAT2BIRIM,
Hizmet = (urunler.HIZMETYENSURYIL > 0 && urunler.HIZMETYENSURAY > 0 ?
urunler.HIZMETYENSURYIL.ToString() + " Yıl " + urunler.HIZMETYENSURAY.ToString() + " Ay"
: (urunler.HIZMETYENSURYIL > 0 && urunler.HIZMETYENSURAY <= 0 ?
urunler.HIZMETYENSURYIL.ToString() + " Yıl"
: (urunler.HIZMETYENSURYIL <= 0 && urunler.HIZMETYENSURAY > 0 ?
urunler.HIZMETYENSURAY.ToString() + " Ay"
: ""))),
TedarikEdilenMiktar = DAOUrun.stok_getmiktar_byyapilanislem(urunler.ID, "TEDARIK"),//this one works fine
SatilanMiktar = DAOUrun.stok_getmiktar_byyapilanislem(urunler.ID, "SATIS"),//this one works fine
Stok = urunler.TEDARIKCISTOKMIKTAR.GetValueOrDefault(0)
- DAOUrun.stok_getmiktar_byyapilanislem(urunler.ID, "SATIS")//error occurs with this one
});
ниже: stok_getmiktar_byyapilanislem
public static double stok_getmiktar_byyapilanislem(string urun_id, string yapilanislem)
{
VeriyazDBDataContext db = new VeriyazDBDataContext(); db.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
double miktar = (from rows in db.TBLP1ISLEMDETAYs
where rows.URUN_ID == urun_id && rows.TBLP1ISLEM.YAPILANISLEM == yapilanislem
select rows.MIKTAR).Sum().GetValueOrDefault(0);
return miktar;
}
Как я могу решить это?