के साथ सीआरयूडी तरीके बनाने के लिए मैं LINQ से SQL में नया हूं और बुनियादी बनाएं, पढ़ें, अद्यतन करें और नष्ट करें के लिए एक सामान्य डेटा एक्सेस ऑब्जेक्ट (डीएओ) बनाने का प्रयास कर रहा हूं (सीआरयूडी) विधियों ताकि मैं कोड का पुन: उपयोग कर सकूं। मैं एक सामान्य विधि बनाने में सफल रहा था जो नीचे दिए गए कोड का उपयोग करके किसी भी इकाई को हटा देगा, लेकिन मैं सोच रहा था कि अगर कोई सामान्य विधि कैसे बनाना है जो किसी भी इकाई को किसी भी आईडी आईडी फ़ील्ड द्वारा मौजूद किसी भी आईडी का चयन करेगा।जेनरिक डेटा एक्सेस ऑब्जेक्ट (डीएओ) सीआरयूडी तरीके कैसे LINQ से SQL
/// <summary>
/// Generic method that deletes an entity of any type using LINQ
/// </summary>
/// <param name="entity"></param>
/// <returns>bool indicating whether or not operation was successful</returns>
public bool deleteEntity(Object entity)
{
try
{
DomainClassesDataContext db = new DomainClassesDataContext();
db.GetTable(entity.GetType()).Attach(entity);
db.GetTable(entity.GetType()).DeleteOnSubmit(entity);
db.SubmitChanges();
return true;
}
catch(Exception ex)
{
Console.WriteLine(ex.StackTrace);
return false;
}
}
मैं बहुत यकीन है कि एक ही गपशप अद्यतन के लिए काम करते हैं और सम्मिलित करें और GenericDAO पर एक सामान्य विधि है कि मुझे किसी भी संस्था को पुनः प्राप्त करेगा करना चाहते हैं जाएगा (यानी ग्राहक, चालान, WorkOrder, आदि हूँ ...) संस्था आईडी पर आधारित है। जवाब के लिए अग्रिम धन्यवाद।
public interface IRepository<T> where T : class
{
void Add(T entity);
void Delete(T entity);
void Update(T entity);
IEnumerable<T> All();
...
}
तो: आप इस तरह एक अंतरफलक IRepository
बनाने की जरूरत
पहले:
आपको बहुत बहुत धन्यवाद। यह पूरी तरह से काम करता है। मैंने अतीत में जावा के साथ केवल हाइबरनेट का उपयोग किया है और ढांचा पहले से ही मौजूद था। अब, मैं एकमात्र डेवलपर हूं जो एक परियोजना पर खरोंच से काम कर रहा है, इसलिए पहली बार मुझे टीम के बाहर अपनी डेटा एक्सेस लेयर लिखनी पड़ी। काश मैं इस समाधान को वोट देने के लिए पर्याप्त प्रतिनिधि था। मैं समुदाय के लिए नया हूं और जब मेरा प्रतिनिधि अधिक होगा तो इसे वोट देना सुनिश्चित होगा। – Grasshopper
@AaronMajor Glade stackoverflow में मदद और स्वागत करने के लिए, बीटीडब्ल्यू: अगर आप इसे उपयोगी पाते हैं तो आप उत्तर को स्वीकार कर सकते हैं: http://stackoverflow.com/faq#howtoask –
@MahmoudGamal महान उत्तर। क्या इंटरफ़ेस का उपयोग करना अनिवार्य है, क्या हम केवल एक वर्ग (रिपोजिटरी) को परिभाषित नहीं कर सकते हैं और नियंत्रक की एक्शन विधि से एक रिकॉर्ड जोड़ या अपडेट या हटा सकते हैं। धन्यवाद – User