Ein Ausdruck, der Baum kann sich nicht enthalten, einen Anruf oder eine Anrufung, die verwendet die option-Argumente in C# Linq
Ich versuche zu tun, eine case-Anweisung für eine der Eigenschaften bei der Auswahl eines anonymen Typs in dem ersten Teil und dann konvertieren Sie Sie in eine Liste von meiner Rückkehr geben (retList). In der retList Teil auf dem Boden, wenn ich QuarterName = p.QuarterName bekomme ich folgende Fehlermeldung auf der DatePart-Funktionen aus dem Abschnitt oben:
Einen Ausdruck-Baum kann sich nicht enthalten, einen Anruf oder Aufruf verwendet
optionale Argumente
public static IEnumerable<Product> GetProducts(int categoryId)
{
using (var context = new DbContext())
{
var pList = (from p in context.Products
where (p.CategoryId == proformaId)
select new
{
Id = p.Id,
ProductName = p.ProductName,
QuarterName = pa.Quarter != "ExtraQuarter" ? "Q" + DateAndTime.DatePart(DateInterval.Quarter, p.PurchaseDate) +
"-" + DateAndTime.DatePart(DateInterval.Year, p.PurchaseDate) :
"<b><i>" + p.Quarter + "</i></b>"
}).ToList();
var retList = from p in pList
select new ProformaAssumption()
{
Id = pa.Id,
ProductName = p.ProformaId,
QuarterName = p.QuarterName
};
return retList;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
DatePart
Methoden haben zusätzliche, optionale Parameter. C# nicht erlaubt, die Expression von Bäumen zur Nutzung des optionalen Parameter, so dass Sie brauchen, um die gesamte parameter-Liste an jeden der diese Methode aufruft.Laut der Dokumentation
FirstDayOfWeek.Sunday
undFirstWeekOfYear.Jan1
sind die Werte, die verwendet werden würde, wenn Sie nicht geben Sie einen Wert für den optionalen Parameter.