Problem mit der Unfähigkeit, eine benutzerdefinierte Methode in einer LINQ2DB -Abfrage zu verwendenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Problem mit der Unfähigkeit, eine benutzerdefinierte Methode in einer LINQ2DB -Abfrage zu verwenden

Post by Anonymous »

Ich verwende linq2db Version 5.3.2 (leider kann ich nicht ein Upgrade, da die Anwendung an andere Anwendungen gebunden ist und die Versionskompatibilität zu Problemen verursacht wird). Ein Fehler, weil LINQ2DB meine benutzerdefinierte ExtractNumber -Methode nicht unterstützt. Ich habe auch versucht, regex.replace (d.invoicenumber.toString (), "[^0-9]", ") zu verwenden, stieß jedoch auf das gleiche Problem. Funktion)? < /p>

Code: Select all

public void InsertPayoffData()
{
using var db = _db();

var query =
from p in db.Payoff1C
join d in db.Debit on new { Number = p.InvoiceNumber, Date = p.InvoiceDate }
equals new { Number = ExtractNumber(d.InvoiceNumber.ToString()), Date = d.InvoiceDate }
join k in db.Kredit on new { Number = p.PayDocNumber.ToString(), Date = p.PayDocDate }
equals new { Number = ExtractNumber(k.PayDocNumber.ToString()), Date = k.PayDocDate }
where !db.Payoff.Any(pf =>
pf.Debit_ID == d.DebitId &&
pf.Kredit_ID == k.Kredit_ID)
select new Payoff
{
Debit_ID = d.DebitId,
Kredit_ID = k.Kredit_ID,
PayoffDate = p.PayDocDate,
PayoffSum = p.PayOffSum,
PayoffType = 0
};

var result = query.ToList();
db.BulkInsert(result);
}

private int ExtractNumber(string value)
{
if (string.IsNullOrEmpty(value))
{
return 0;
}

var numberString = new string(value.Where(char.IsDigit).ToArray());
return int.TryParse(numberString, out int result) ? result : 0;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post