2011-02-01 12 views
5

जब मैं क्वेरी का उपयोगASP.NET MVC LINQ क्वेरी

var NewMatchs = (from x in entity.matches select x).LastOrDefault(); 

मैं संस्थाओं को यह

LINQ की तरह त्रुटि विधि 'SocialSports.Models.match LastOrDefaultmatch' को नहीं पहचानता है मिल विधि, और यह विधि को स्टोर अभिव्यक्ति में अनुवादित नहीं किया जा सकता है।

मेरे कोड में क्या गलत है ???

धन्यवाद ...

उत्तर

7

आप LastOrDefault उपयोग नहीं कर सकते, एफई संस्थाओं क्वेरी करने के लिए के रूप में यह T-SQL में अनुवाद नहीं किया जा सकता है।

लिंकक से इकाइयों द्वारा सभी LINQ विधियों का समर्थन नहीं किया जाता है।

सभी समर्थित/नहीं समर्थित तरीकों की सूची:

http://msdn.microsoft.com/en-us/library/bb738550.aspx

आप

var NewMatchs = (from x in entity.matches select x).ToList().LastOrDefault(); 

कोशिश लेकिन इस डाटाबेस से सभी मिलान लोड होगा और वस्तुओं के लिए Linq प्रदर्शन कर सकता है ।

या छँटाई कोशिश करते हैं और FirstOrDefault कहते हैं।

+0

.ToList() LastOrDefault() भयानक।! – timothyclifford

+1

इस तरह से अच्छा नहीं है। क्योंकि वहाँ DB में आइटम का एक बहुत हो सकता है। –

+0

@ ДарияПечайко - कि ठीक क्या मैं अपने जवाब में लिखा है। –

8

LastOrDefault संस्थाओं के लिए LINQ में समर्थित नहीं है। आप निम्न का उपयोग कर एक ही लक्ष्य को हासिल कर सकते हैं:

var lastmatch = (from x in entity.matches select x) 
         // Assuming you have some kind of timestamp 
        .OrderByDescending(s => s.Date) 
        .FirstOrDefault();