2012-06-05 13 views
10

मेरे पास एक ग्राहक है जिसने यह निर्धारित किया है कि मैं डैपर ओआरएम का उपयोग करता हूं, जिसे मैंने पहले कभी नहीं उपयोग किया था। मुझे नेस्टेड ऑब्जेक्ट्स में समस्या है। मेरे पास एक मुख्य श्रेणी (स्थान) है जिसमें एक एम्बेडेड वैल्यू ऑब्जेक्ट क्लास (पता) है। दो वर्गों इस तरह दिखेगा:डैपर ओआरएम नेस्टेड ऑब्जेक्ट्स

class Location { 
    int Id; 
    string LocationName; 
    Address LocationAddress; 
} 

Class Address { 
    string Street; 
    string City; 
    string State; 
    string ZipCode; 
} 

एसक्यूएल:

SELECT Id, LocationName, Street, City, State, ZipCode FROM Locations 

मैं उदाहरण के एक नंबर पर नज़र है लेकिन मैं सिर्फ क्वेरी सही की स्थापना नहीं मिल सकता है। मैं संरचना को सही करने के लिए पर्याप्त डैपर को समझ नहीं पा रहा हूं।

उत्तर

9

आप अपने डैपर क्वेरी में "splitOn" पैरामीटर का उपयोग कर सकते हैं।

var sql = "SELECT Id, LocationName, Street, City, State, ZipCode FROM Locations"; 
var conn = // your get connection logic here. 

using(conn) 
{ 
conn.Open(); 
var locations = conn.Query<Location,Address,Location>(sql, (location, address) => 
       { 
        location.LocationAddress = address; 
        return location; 
       }, splitOn: "Street"); 
} 

SplitOn की आवश्यकता है, तो रिकॉर्ड सेट में अपनी वस्तुओं "आईडी" नामक एक कॉलम के आधार पर "विभाजन" नहीं हैं।

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