2015-12-30 6 views
13

क्लास नामों के लिए डेटाबेस फ़ील्ड नामों को मैप करने के कई तरीके हैं, लेकिन अंडरस्कोर को हटाने का सबसे आसान तरीका क्या है?मानचित्रण करते समय फ़ील्ड नामों में अंडरस्कोर को अनदेखा/निकालने के लिए डैपर कैसे प्राप्त करें?

public IEnumerable<PersonResult> GetPerson(int personId) 
    { 
     using (var dbConnection = _dbConnectionFactory.Create(ConnectionStrings.ProjectXYZ)) 
     { 
      IEnumerable<PersonResult> result = 
       dbConnection.Query<PersonResult>("fn_get_person", new { personId }, 
        commandType: CommandType.StoredProcedure).ToList(); 

      return result; 
     } 
    } 

तालिका और डेटाबेस फ़ील्ड:

person 
-------- 
person_id 
full_name 

क्लास कि काम करता है: (व्यवसायिक पहले से ही ध्यान नहीं देता पूंजीकरण)

public class PersonResult 
{  
    public int Person_Id { get; set; } 
    public string Full_Name { get; set; } 
} 

मैं करने के लिए वर्ग परिवर्तन करना चाहते हैं क्या:

public class PersonResult 
{  
    public int PersonId { get; set; } 
    public string FullName { get; set; } 
} 
+0

क्या आप PostgreSQL और नहीं एसक्यूएल सर्वर का उपयोग कर रहे हैं? – Andomar

+0

हां। :) अनुमान लगा रहे हैं कि आप पूछ रहे हैं क्योंकि कमांड प्रकार "संग्रहीत प्रक्रिया" है और postgresql में केवल फ़ंक्शन हैं? यह अभी भी काम करता है। – scw

उत्तर

23
Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true; 

किया काम, पी

+0

वाह देखें। मैंने इसे अपने कनेक्शन कारखाने में रखा और यह काम करता है, लेकिन क्या कोई बेहतर जगह है? – scw

+0

@scw अच्छी तरह से, आप अपना खुद का प्रकार का नक्शा कार्यान्वयन लिख सकते हैं ... लेकिन: यह –

+0

काम करता है क्या यह एक डैपर कॉल के लिए सशर्त रूप से करने का कोई तरीका है? – julealgon

2

readme कॉलम का नाम बदलने के लिए कोई समर्थन नहीं दिखाता है। आप उन्हें select में उपनाम सकता है:

select person_id as personid, full_name as fullname from fn_get_person(); 

this answer में सुझाव के रूप में।

+1

असल में, यह समर्थित है - मेरा उत्तर –

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

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