Hey there,
I am facing a Problem with LinqMetaData and I hope someone could give me a hint, whats wrong:
First of all, this code is doing well
using (IDataAccessAdapter da = DataAccessAdapter.GetCUPnew()) {
var metaData = new LinqMetaData(da);
var settlements = metaData.BuchhaltungAuszug.Where(sd => sd.ZahlungsartDebitorenID.Value == 24);
Assert.IsTrue(settlements.Any());
}
But this code gives an error:
using (IDataAccessAdapter da = DataAccessAdapter.GetCUPnew()) {
var metaData = new LinqMetaData(da);
var settlements2 = metaData.BuchhaltungAuszug.Where(sd => sd.ZahlungsartDebitorenID.Value == 24 && sd.Verbucht == false && sd.Betrag < 0);
Assert.IsTrue(settlements2.Any());
}
where ZahlungsartDebitorenID is nullable int, Verbucht is bit and Betrag is decimal(19, 2)
It says:
An exception was caught during the execution of a retrieval query: Unkown Columnname 'LPFA_1'..
The resulting sql looks wrong:
exec sp_executesql N'SELECT TOP(@p4) CASE WHEN EXISTS (SELECT [LPA_L2].[Id] FROM (SELECT [LPLA_1].[ID] AS [Id], [LPLA_1].[AuftraggeberBLZ] AS [AuftraggeberBlz], [LPLA_1].[AuftraggeberKonto], [LPLA_1].[AuftraggeberName], [LPLA_1].[Betrag], [LPLA_1].[WaehrungID] AS [WaehrungId], [LPLA_1].[Transaktionsereigniscode], [LPLA_1].[Verwendungszweck], [LPLA_1].[BuchDatum], [LPLA_1].[WertDatum], [LPLA_1].[Buchtext], [LPLA_1].[Gebuehren], [LPLA_1].[GebuehrenWaehr], [LPLA_1].[Transaktionscode], [LPLA_1].[ReferenzNr], [LPLA_1].[ReferenzNrTyp], [LPLA_1].[BenutzerdefiniertesFeld], [LPLA_1].[KundenNr], [LPLA_1].[ZahlungsverfolgungsNr], [LPLA_1].[CCNumber] AS [Ccnumber], [LPLA_1].[CCRefnumber] AS [Ccrefnumber], [LPLA_1].[CCCollector_trx] AS [CccollectorTrx], [LPLA_1].[CCReference] AS [Ccreference], [LPLA_1].[CCRecordID] AS [CcrecordId], [LPLA_1].[Ordernumber], [LPLA_1].[Orderdate], [LPLA_1].[CUBankkontoID] AS [CubankkontoId], [LPLA_1].[EigeneBLZ] AS [EigeneBlz], [LPLA_1].[EigeneKontoNr], [LPLA_1].[AuszugNr], [LPLA_1].[Verbucht], [LPLA_1].[AutomatischVerbucht], [LPLA_1].[Verarbeitet], [LPLA_1].[Bemerkung], [LPLA_1].[GVC] AS [Gvc], [LPLA_1].[GVCErg] AS [Gvcerg], [LPLA_1].[CCCardType] AS [CccardType], [LPLA_1].[Bearbeitungsmodus], [LPLA_1].[BearbeitungsIP] AS [BearbeitungsIp], [LPLA_1].[BearbeitungAb], [LPLA_1].[BearbeitungsFormHandle], [LPLA_1].[BearbeiterPersonalNummer], [LPLA_1].[DatensatzAngelegtAm], [LPLA_1].[DatensatzAngelegtVon], [LPLA_1].[ZuletztGespeichert], [LPLA_1].[ZuletztGespeichertVon], [LPLA_1].[CCDatum] AS [Ccdatum], [LPLA_1].[NachfolgeReferenz], [LPLA_1].[CCVuNummer] AS [CcvuNummer], [LPLA_1].[ZahlungsartDebitorenID], [LPLA_1].[Storniert], [LPLA_1].[TransferGebucht], [LPLA_1].[SettlementHeaderID] AS [SettlementHeaderId] FROM [DEV_CUPNEW_HEUTE].[dbo].[tblBuchhaltungAuszuege] [LPLA_1] WHERE ( ( [LPFA_1] = @p2))) [LPA_L2]) THEN 1 ELSE 0 END AS [LPFA_2] FROM [DEV_CUPNEW_HEUTE].[dbo].[tblBuchhaltungAuszuege] [LPLA_1] ',N'@p2 bit,@p4 bigint',@p2=1,@p4=1
Why is the expression with one argument doing fine but with more than one dont?