दिलचस्प पोस्ट
ट्विटर बूटस्ट्रैप बहुस्तर ड्रॉपडाउन मेनू फ्रैग्मेंटपेगर एडाप्टर और फ्रैगमेंटस्टेट पेजर एडेप्टर के बीच का अंतर एंड्रॉइड: संसाधनों से नाम कैसे मिल सकता है? एंज्यूलर 2.0 राउटर और घटक अंतरफलक के साथ पृष्ठ संक्रमण एनिमेशन गिटहब पर मूल और अपस्ट्रीम के बीच अंतर क्या है? org.json.JSONObject को Android में JSONArray में कनवर्ट नहीं किया जा सकता एक साथ लाइन से दो टेक्स्टफ़ाइल लाइन को पढ़ें -पिथॉन JSONP सभी के बारे में क्या है? कैसे distituils जीसीसी उपयोग करने के लिए बताओ? परिभाषा में कार्य शीर्षक के बाद सी चर घोषणाएं रेल – एसटीआई के बिना टाइप कॉलम का उपयोग करें? सी # में छवियों की एसआरसी पाने के लिए नियमित अभिव्यक्ति IOS 7 UIImagePicker पूर्वावलोकन काली स्क्रीन निर्माता दिनांक (…) नापसंद है इसका क्या मतलब है? (जावा) अक्षम विशेषता के लिए सही मान

विशिष्ट प्रकार के सदस्य को LINQ में इकाईयों में समर्थित नहीं है केवल प्रारंभिक, इकाई के सदस्य, और इकाई नेविगेशन गुण समर्थित हैं

var result = (from bd in context.tblBasicDetails from pd in context.tblPersonalDetails.Where(x => x.UserId == bd.UserId).DefaultIfEmpty() from opd in context.tblOtherPersonalDetails.Where(x => x.UserId == bd.UserId).DefaultIfEmpty() select new clsProfileDate() { DOB = pd.DOB }); foreach (clsProfileDate prod in result) { prod.dtDOB = !string.IsNullOrEmpty(prod.DOB) ? Convert.ToDateTime(prod.DOB) : DateTime.Today; int now = int.Parse(DateTime.Today.ToString("yyyyMMdd")); int dob = int.Parse(prod.dtDOB.ToString("yyyyMMdd")); string dif = (now - dob).ToString(); string age = "0"; if (dif.Length > 4) age = dif.Substring(0, dif.Length - 4); prod.Age = Convert.ToInt32(age); } GetFinalResult(result); 

 protected void GetFinalResult(IQueryable<clsProfileDate> result) { int from; bool bfrom = Int32.TryParse(ddlAgeFrom.SelectedValue, out from); int to; bool bto = Int32.TryParse(ddlAgeTo.SelectedValue, out to); result = result.AsQueryable().Where(p => p.Age >= from); } 

यहां मुझे एक अपवाद मिल रहा है:

निर्दिष्ट प्रकार के सदस्य "आयु" LINQ में इकाईयों में समर्थित नहीं है केवल प्रारंभिक, इकाई के सदस्य, और इकाई नेविगेशन गुण समर्थित हैं।

जहां आयु डेटाबेस में नहीं है, वह संपत्ति है जिसे मैं डीओबी से आयु की गणना करने के लिए clsProfileDate वर्ग में बनाया है। इसका कोई समाधान?

Solutions Collecting From Web of "विशिष्ट प्रकार के सदस्य को LINQ में इकाईयों में समर्थित नहीं है केवल प्रारंभिक, इकाई के सदस्य, और इकाई नेविगेशन गुण समर्थित हैं"

आप उन प्रॉपर्टी का उपयोग नहीं कर सकते हैं जो किसी डेटाबेस कॉलम में मैप नहीं किए जाते हैं Where अभिव्यक्ति में मैप किए गए गुणों के आधार पर आपको अभिव्यक्ति का निर्माण करना होगा, जैसे:

 var date = DateTime.Now.AddYears(-from); result = result.Where(p => date >= p.DOB); // you don't need `AsQueryable()` here because result is an `IQueryable` anyway 

आपके न की गई Age संपत्ति के प्रतिस्थापन के रूप में आप इस अभिव्यक्ति को एक स्थिर तरीके से निकालना चाहते हैं:

 public class clsProfileDate { // ... public DateTime DOB { get; set; } // property mapped to DB table column public static Expression<Func<clsProfileDate, bool>> IsOlderThan(int age) { var date = DateTime.Now.AddYears(-age); return p => date >= p.DOB; } } 

और फिर इसे इस तरह का प्रयोग करें:

 result = result.Where(clsProfileDate.IsOlderThan(from)); 

बहुत सारे लोग यह कहने जा रहे हैं कि यह एक बुरा जवाब है क्योंकि यह सबसे अच्छा अभ्यास नहीं है, लेकिन आप इसे अपने पहले एक सूची में भी बदल सकते हैं।

 result = result.ToList().Where(p => date >= p.DOB); 

स्लुमा का उत्तर बेहतर है, लेकिन यह भी काम करेगा। यह लागत अधिक है क्योंकि ToList () डेटाबेस के विरुद्ध क्वेरी को निष्पादित करेगा और परिणाम को स्मृति में स्थानांतरित कर देगा।

जब आप गलती से एक संपत्ति के लिए एक सेटर निर्धारित करने के लिए भूल जाते हैं तो आपको यह त्रुटि संदेश भी मिलेगा उदाहरण के लिए:

 public class Building { public string Description { get; } } var query = from building in context.Buildings select new { Desc = building.Description }; int count = query.ToList(); 

ToList को कॉल एक ही त्रुटि संदेश देगा यह एक बहुत ही सूक्ष्म त्रुटि है और पता लगाने के लिए बहुत मुश्किल है।