2011-05-26 19 views
7

मैं नीचे के रूप में एक कोड संरचना है:लेखन डैप्पर क्वेरी ऑब्जेक्ट्स

class Person 
{ 
    Name PersonName; 
    int Age; 
} 

class Name 
{ 
    string FirstName { get; set; } 
    string LastName { get; set; } 
} 

यहाँ मेरी संग्रहित प्रोक जो डेटाबेस से डेटा भरता है।

Create Procedure SpGetAllPersons 
As 
Select FirstName, LastName, Age from Persons 

मैं डैपर क्वेरी कैसे लिखूं जो डेटाबेस से सभी व्यक्ति को खींचता है?

उदाहरण:

List<Person> Persons = DbConn.Query<Person>("SpGetAllPersons", CommandType.StoredProcedure);

उत्तर

8

आप बहु नक्शाकार उपयोग करने के लिए यदि आप नेस्टेड वस्तुओं का चयन करना चाहते हैं की जरूरत है।

यह काम करना चाहिए:

List<Person> persons = DbConn.Query<Name,Person,Person> 
    ("SpGetAllPersons", 
    (name,person) => {person.Name = name; return person;} 
    commandType: CommandType.StoredProcedure, 
    splitOn: "Age"); 

बहु नक्शाकार किसी भी प्रकार, यहां तक ​​कि एक समग्र प्रकार है कि किसी भी db तालिका पर मैप नहीं है लौट सकते हैं।

splitOn परम को आपूर्ति करना महत्वपूर्ण है यदि आप id या Id नामक किसी भी चीज़ पर विभाजित करना चाहते हैं।

+0

यह मेरे लिए काम नहीं करता है। मुझे नाम की स्थिति स्वैप करना पड़ा: '.Query <व्यक्ति, नाम, व्यक्ति> (..., (व्यक्ति, नाम) => ...)'। इसके अलावा, splitOn: "आयु" मेरे लिए काम नहीं कर रहा है - मुझे यह त्रुटि मिल रही है: "मल्टी-मैपिंग एपीआई का उपयोग करते समय सुनिश्चित करें कि यदि आप आईडी के अलावा अन्य कुंजी हैं तो" – Trev

+0

मुझे गलत समझना है कि वास्तव में क्या विभाजित था कर रहा है ... वह हिस्सा ठीक काम कर रहा है ... लेकिन मुझे अभी भी 'नाम' को स्वैप करने की आवश्यकता है – Trev

संबंधित मुद्दे