这是我的带连接的linq代码 - 我的第一个类是主表(SKontrat
),其他类与SKontrat
类有关系:
var result = from k in SKontrat()
join kk in SKontratKalem() on k.ID equals kk.UstID
join m in SKontratMasraflari() on k.ID equals m.KontratID
join s in SKontratSatisSekli() on k.ID equals s.KontratID
join tb in SKontratTarihBaglantilar() on k.ID equals tb.KontratID
join gp in SKontratGP() on k.ID equals gp.KontratID
select new
{
k.ID,
k.Tip,
k.KontratNo,
BagliOlduguEvrakNo = db.BagliOlduguKontratlarGetir(k.ID),
k.FirmaIsmi,
k.InspektorAdi,
k.PlasiyerAdi,
k.Not1,
k.Not2,
k.Not3,
k.DovizBirim,
Miktar = SKontratKalem().Sum(q => q.Miktar),
TahminiGenelToplam = db.SiparisRaporuTahminiGenelToplam(k.ID, Convert.ToInt32(kk.MusteriID), Convert.ToInt32(kk.TedarikciID)),
GercekGenelToplam = db.SiparisRaporuGercekGenelToplam(k.ID, Convert.ToInt32(kk.MusteriID), Convert.ToInt32(kk.TedarikciID)),
GpGercekKdvliTutar = db.GpGercekKdvliTutar(k.ID, Convert.ToDecimal(txtBrutToplamGelirGPKdvli1.Text), Convert.ToDecimal(txtBrutToplamGelirGPKdvli2.Text), txtBrutToplamGelirGPKdvsizBirim.Text),
GpTahminiKdvliTutar = db.GpTahminiKdvliTutar(k.ID, Convert.ToDecimal(txtBrutToplamGelirGPKdvli1.Text), Convert.ToDecimal(txtBrutToplamGelirGPKdvli2.Text), txtBrutToplamGelirGPKdvsizBirim.Text),
TarihBaglantiDurum = tb.TDosyaKapandi.Value.ToString() != "" || tb.TDosyaKapandi != null ? "Dosya Kapandı" : "Beklemede",
k.KayitTarihi,
k.MarkalamaTarihi,
k.TeslimSekli,
k.IrsaliyeSekli,
OperasyonTarihi = tb.Operasyonda,
DosyaKapandi = tb.TDosyaKapandi,
SevkiyatTarihi = tb.SevkiyatGerceklesen,
k.KayitYapanKullanici,
k.KayitTarihi_DB,
k.DuzenlemeYapanKullanici,
k.DuzenlemeTarihi_DB
};
grSonuclar.DataSource = result.ToList();
这里是IQueryable
类之一:
private IQueryable<KontratUst> SKontrat()
{
var _result = PredicateBuilder.True<KontratUst>();
_result = _result.And(x => x.Tip == KontratTipi);
_result = _result.And(x => x.Silindi == 0);
if (txtFirmaIsmi.Text != string.Empty)
_result = _result.And(x => x.FirmaIsmi.Contains(txtFirmaIsmi.Text));
if (txtKayitTarihi1.Text != string.Empty && txtKayitTarihi2.Text != string.Empty)
_result = _result.And(x => x.KayitTarihi >= txtKayitTarihi1.DateTime && x.KayitTarihi <= txtKayitTarihi2.DateTime);
else if (txtKayitTarihi1.Text != string.Empty)
_result = _result.And(x => x.KayitTarihi >= txtKayitTarihi1.DateTime);
else if (txtKayitTarihi2.Text != string.Empty)
_result = _result.And(x => x.KayitTarihi <= txtKayitTarihi2.DateTime);
if (txtKayitTarihi1.Text != string.Empty && txtMarkalamaTarihi2.Text != string.Empty)
_result = _result.And(x => x.MarkalamaTarihi >= txtMarkalamaTarihi1.DateTime && x.MarkalamaTarihi <= txtMarkalamaTarihi2.DateTime);
else if (txtMarkalamaTarihi1.Text != string.Empty)
_result = _result.And(x => x.MarkalamaTarihi >= txtMarkalamaTarihi1.DateTime);
else if (txtMarkalamaTarihi2.Text != string.Empty)
_result = _result.And(x => x.MarkalamaTarihi <= txtMarkalamaTarihi2.DateTime);
if (txtContractTarihi1.Text != string.Empty && txtMarkalamaTarihi2.Text != string.Empty)
_result = _result.And(x => x.KontratTarihi >= txtContractTarihi1.DateTime && x.KontratTarihi <= txtContractTarihi2.DateTime);
else if (txtContractTarihi1.Text != string.Empty)
_result = _result.And(x => x.KontratTarihi >= txtContractTarihi1.DateTime);
else if (txtContractTarihi2.Text != string.Empty)
_result = _result.And(x => x.KontratTarihi <= txtContractTarihi2.DateTime);
if (txtPlasiyerAdi.Text != string.Empty)
_result = _result.And(x => x.PlasiyerAdi.Contains(txtPlasiyerAdi.Text));
if (txtYardimciPlasiyer.Text != string.Empty)
_result = _result.And(x => x.YardimciPlasiyerAdi.Contains(txtYardimciPlasiyer.Text));
if (txtYardimSekli.Text != string.Empty)
_result = _result.And(x => x.YardimSekli.Contains(txtYardimSekli.Text));
if (txtMusteriTemsilcisi.Text != string.Empty)
_result = _result.And(x => x.MusteriTemsilcisi.Contains(txtMusteriTemsilcisi.Text));
if (txtInspektorAdi.Text != string.Empty)
_result = _result.And(x => x.InspektorAdi.Contains(txtInspektorAdi.Text));
var _return = db.KontratUsts.Where(_result);
return _return;
}
我收到这样的错误:
发生FormatException:输入字符串的格式不正确。