- Aufruf einer Methode innerhalb der select-Teil einer LINQ-Abfrage
Habe ich die folgende linq-Abfrage:
var file = (from p in database.tblFile
join o in database.tblFileVersion on p.fldFileID equals o.fldFileID
join t in database.tblFileAttachments on p.fldFileID equals t.fldFileID
where p.fldFileID == team.Key
where o.fldVersionNo == highestVersion
select new UserDashboardFile
{
Filename = p.fldFilename,
VersionNumber = o.fldVersionNo,
FileID = team.Key,
Type = GetFileType(t.fldTableName),
}).Single();
GetFileType ist eine Methode gibt ein enumeration-Typ. Es ist kein Syntaxfehler, aber wenn ich das Projekt (es ist ein mvc-4-web-Projekt), erhalte ich den folgenden Fehler:
LINQ to Entities erkennt nicht die Methode
'Dris.Code.UserDashboardFileType GetFileType(System.String) " - Methode,
und diese Methode kann nicht übersetzt werden, in einen laden zu Ausdruck.
Ich mir vorstellen, dass diese Abfrage nicht übersetzt werden in ein t-sql-Abfrage, aber ich weiß nicht, wie meine Abfrage, um zu vermeiden, die oben genannten Fehler. Vielen Dank im Voraus...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie anonym Objekt zuerst und dann konstruieren
UserDashboardFile
.Auch Sie können call
.AsEnumerable()
bevor Sie wählen, um zu verhindern, dassGetFileType
übersetzt werden in sql.