2016-06-16 24 views
0

Bitte sagen Sie mir, warum ich diesen Fehler sehe:LINQ to Entities erkennt nicht die Methode in C#

LINQ to Entities erkennt nicht die Methode

Auf diesem Code:

var shopCom = _entities.ShoppingComments.LastOrDefault(
XX => XX.UserId == obj.UserId && 
XX.ShoppingScoreTypeId ==obj.TypeId && 
XX.WhichId == obj.Id && 
XX.CommentDate ==objShoppingComment.CommentDate && 
XX.Commnet ==objShoppingComment.Commnet); 
+0

Was ist XX? Was ist Obj? Wo verwenden Sie shopCom? Bei welcher Zeile erscheint der Fehler? – Aimnox

+0

EinkaufenKommentar objEinkaufenKommentar; PostCommentDto obj; – ara

+0

Es war über den Vergleich Kommentar (string), XX.Commnet == objShoppingComment.Commnet und wenn ich es lösche, funktioniert der Code – ara

Antwort

0

Gemäß Supported and Unsupported LINQ Methods (LINQ to Entities), Last und LastOrDefault Methoden werden nicht unterstützt.

Wenn Sie Null oder einen Datensatz erwarten, ersetzen Sie einfach den LastOrDefault durch .

Ansonsten etwas wie folgt verwenden:

var shopCom = _entities.ShoppingComments 
    .Where(XX => XX.UserId == obj.UserId && 
     XX.ShoppingScoreTypeId ==obj.TypeId && 
     XX.WhichId == obj.Id && 
     XX.CommentDate ==objShoppingComment.CommentDate && 
     XX.Commnet ==objShoppingComment.Commnet) 
    .OrderByDescending(XX => XX.SomeField) 
    .FirstOrDefault(); 
+0

https://msdn.microsoft.com/en-us/library/bb301849(v=vs. 110) .aspx –

+0

Es war über Vergleich Kommentar (String), XX.Commnet == objShoppingComment.Commnet und wenn ich es löschen, funktioniert der Code – ara

+0

ich bezweifle. Außer Sie verwenden EF Core, oder? –

0

Linq to Entities übersetzt wird unter der Haube SQL, so dass ich denke, das Problem in der LastOrDefault ist, die zählbare umkehren und FirstOrDefault verwenden.

+0

Es ging darum, Kommentar (string), XX.Commnet == objShoppingComment.Commnet zu vergleichen und wenn ich es lösche, funktioniert der Code, aber die Frage ist, warum ich String nicht vergleichen kann: | – ara

Verwandte Themen