के बीच डीटीओ का उपयोग कैसे करें मैं बीएलएल और डीएएल के बीच बहुत सख्त सीमाओं के साथ एक छोटा ऐप लिखने की कोशिश कर रहा हूं और अब सोच रहा हूं कि डेटा (डोमेन ट्रांसफर ऑब्जेक्ट्स) को बीच में सबसे अच्छा तरीका क्या होगा परतेंयूआई, बीएलएल, डीएएल
मैं एक डोमेन स्तर (वर्ग पुस्तकालय) है कि दोनों BLL और दाल से पहुँचा जा सकता है में कुछ वर्गों को लागू किया। इन वर्गों में मूल रूप से गुण/डेटा सदस्य होते हैं और वर्तमान में डीएएल डेटा को प्रतिबिंबित करते हैं। उदाहरण के लिए:
class Customer : CustomerData
{
// Some methods
}
मेरी दाल में मैं Linq करने वाली Sql के माध्यम से डेटाबेस से ग्राहक रिकॉर्ड मिलता है:
class CustomerData
{
// some data fields
}
तो मैं कुछ वर्गों BLL में के रूप में लागू। मैं तब तक मेरी डोमेन वस्तु को LINQ वस्तु नक्शा:
CustomerData.field = LinqObject.field
// Etc
मेरे सोच है कि अब मैं जब अनुरोध BLL करने के लिए अपने DAL से एक CustomerData उदाहरण इस प्रकार है (और मैं अपने यूआई के लिए एक ग्राहक उदाहरण पारित करना चाहिए कि)।
मेरे बीएलएल में मुझे इस प्रकार एक ग्राहकडेटा उदाहरण प्राप्त होगा, लेकिन अब मैं इसे ग्राहक से बाहर करना चाहता हूं।
सवाल:
- मैं में मेरी BLL अब एक ग्राहक उदाहरण बना सकते हैं और फिर से सभी क्षेत्र के सदस्यों को कॉपी करने की है?
ग्राहक सी = नया ग्राहक; सी .फील्ड = ग्राहकडाटा.फील्ड; - मैं क्षेत्र प्रतिलिपि चरणों के बिना CustomerData से एक ग्राहक कैसे बना सकते हैं?
- क्या मुझे इसके बजाय रचना का उपयोग करना चाहिए?
वर्ग ग्राहक { CustomerData डाटा; } - वहाँ एक अधिक प्रभावी तरीका है (कम कोडिंग आदि) मेरे वर्तमान लेआउट में यह करने के लिए?
- वहाँ यह करने के लिए बेहतर तरीके है?
- सामान्य रूप से कोई टिप्पणी?
धन्यवाद!
Yorah के जवाब # 1 के लिए +8। बंदर कोडिंग ऐसा ही आपको दर्द जैसा लग सकता है। अंत में यह वास्तव में गलत काम है क्योंकि डिग्री की वजह से यह बग बढ़ाता है और चीजों को $$ में दर्द देता है। ValuInjector भी आज़माएं - कई इसे ऑटोमैपर से बेहतर पसंद करते हैं, और अधिक हल्के वजन। अपने मैपिंग का पुन: उपयोग करने के लिए तैयार रहें। – FastAl