2012-01-26 17 views
17

मैं वर्तमान में अपने "मैन्युअल क्वेरी-लेखन" कोड को एक अच्छा एसक्यूएल फ्रेमवर्क में स्विच करने की योजना बना रहा हूं, इसलिए मैं प्रश्नों को लिखने के बजाय प्रश्नों या एसक्यूएल चीजों को ढांचे में छोड़ सकता हूं ।इकाई फ्रेमवर्क 4: सिंगल रिकॉर्ड का चयन

अब मैं सोच रहा हूं कि मैं एंटिटी फ्रेमवर्क 4 में अपनी तालिका से एक रिकॉर्ड कैसे प्राप्त कर सकता हूं?

मैंने मुख्य रूप से SELECT * FROM {0} WHERE Id = {1} जैसे SQL का उपयोग किया है। जहां तक ​​मेरा संबंध है, यह ईएफ 4 में काम नहीं करता है।

क्या कोई तरीका है कि मैं अपने संदर्भ से एक आईडी-आधारित रिकॉर्ड का चयन कर सकता हूं?

कुछ की तरह:

public Address GetAddress(int addressId) 
{ 
    var result = from Context.Addresses where Address.Id = addressId; 

    Address adr = result as Address; 

    return Address; 
} 

धन्यवाद!

उत्तर

34
var address = Context.Addresses.First(a => a.Id == addressId); 
+0

धन्यवाद! फिर मैं "पता" मानों का उपयोग कैसे कर सकता हूं? क्या मैं इसे "पता" पर डाल सकता हूं और इसे पते के माध्यम से दर्ज कर सकता हूं। आईडी, पता। प्रॉपर्टी 1? या मुझे पता ["आईडी"] या पता ["संपत्ति 1"] जैसे कुछ करने की ज़रूरत है? – SeToY

+0

हां, बस आप 'int id = address.Id' – Ray

+0

के माध्यम से पता वर्ग के संपत्ति मूल्य तक पहुंच सकते हैं, इसलिए "पता" टाइप करने के लिए इसे डालने की कोई आवश्यकता नहीं है? मिठाई। धन्यवाद! – SeToY

4

आप Single या First विधियों का उपयोग कर सकते हैं।

उन तरीकों के बीच अंतर यह है कि सिंगल एक पंक्ति की अपेक्षा करता है और यदि कोई पंक्ति नहीं है तो अपवाद फेंकता है। आप (-> ADO.NET इकाई डेटा मॉडल जोड़े) एक .edmx बनाते हैं

का उपयोग करना उन्हें

+0

एकल इकाई की रूपरेखा के साथ काम नहीं करता है, दुर्भाग्य से ... –

+4

एकल और SingleOrDefault वास्तव में के बाद से क्वेरी के शीर्ष पर समर्थन कर रहे ईएफ 4.0। – divega

0

(वी.एस. 2015 को आधार) दोनों के लिए एक ही है। enter image description here

".edmx" बनाने के लिए चरणों के माध्यम से जाएं और संग्रहीत प्रक्रिया को चलाने के लिए निम्न का उपयोग करें। emailAddress वह पैरामीटर है जिसे आप संग्रहीत प्रक्रिया g_getLoginStatus पर भेज रहे हैं। यह LoginStatus में पहली पंक्ति खींच लेंगे और status डेटाबेस में एक स्तंभ है:

bool verasity = false; 
DBNameEntities db = new DBNameEntities(); // Use name of your DBEntities 

var LoginStatus = db.g_getLoginStatus(emailAddress).FirstOrDefault(); 

if ((LoginStatus != null) && (LoginStatus.status == 1)) 
{ 
     verasity = true; 
} 
संबंधित मुद्दे