मेरे विस्तारित LinqToSql कक्षाओं में आसान पहुंच के लिए मेरे डेटाकॉन्टेक्स्ट को स्थापित करने के मामले में सबसे अच्छा अभ्यास क्या है?LinqToSql घोषित करें और DataContext सर्वोत्तम अभ्यास को तुरंत चालू करें?
उदाहरण के लिए, मैं अपने dbml में एक "उपयोगकर्ता" इकाई है और मैं तो जैसे कि वर्ग के लिए तरीकों जोड़ना चाहते हैं:
Partial Public Class User
Public Function GetUser(ByVal UserID as Integer) as User
'Do Work
End Function
End Class
मेरी DataContext उपयोग करने के लिए मैं इसे अंदर घोषित करने के लिए होगा इस प्रकार की विधि:
Partial Public Class User
Public Function GetUser(ByVal UserID as Integer) as User
Dim dc as New MyDataContext()
Return (From u in dc.Users Where u.ID = UserID).Single()
End Function
End Class
मैं प्रत्येक विधि के लिए ऐसा नहीं करना चाहता हूं। आम तौर पर (अगर मैं LinqToSql dbml कक्षाओं का विस्तार नहीं किया गया) मैं तो बस ऐसा कर सकता है:
Partial Public Class User
Private dc as MyDataContext
Public Sub New()
dc = new MyDataContext()
End Sub
Public Function GetUser(ByVal UserID as Integer) as User
Return (From u in dc.Users Where u.ID = UserID).Single()
End Function
Public Function GetAllUsers() as IEnumerable(Of User)
Return From u in dc.Users
End Function
'etc...
End Class
यह मैं नव हर बार यह घोषणा करने के लिए बिना प्रत्येक विधि के लिए DataContext तक पहुंच सकते हैं। लेकिन निश्चित रूप से आप ऐसा नहीं कर सकते क्योंकि डीबीएमएल में पहले से ही एक कन्स्ट्रक्टर है। और डीबीएमएल में कोड जोड़ना हमेशा कुछ भी बदल जाता है अगर कुछ भी बदलता है।
किसी के पास कुछ अतिरिक्त कोड कैसे सहेजने के बारे में कोई अच्छा विचार है?
टीआईए!
डेटा संदर्भ स्वयं वास्तव में बहुत हल्का है, हालांकि यह संभावित रूप से कई संस्थाओं का संदर्भ दे सकता है। संस्थाओं को मुक्त करने के लिए इसका निपटारा वास्तव में एक अच्छा विचार है। यदि यह हेवीवेट ऑब्जेक्ट था तो मैं इसे चारों ओर रखने के इच्छुक हूं इसलिए मुझे इसे फिर से बनाना नहीं था। – tvanfosson
@tvanfosson मेरा मतलब है; उस बिंदु को और स्पष्ट करने के लिए संपादित किया गया। डीसी संभावित रूप से इसके साथ बहुत अधिक वजन ले सकता है; जितनी जल्दी हो सके इसे से छुटकारा पाने के लिए सबसे अच्छा। –
निपटान के खिलाफ तर्क: http://stephenwalther.com/blog/archive/2008/08/20/asp-net-mvc-tip-34-dispose-of-your-datacontext-or-don-t.aspx –