के साथ splitOn के साथ काम नहीं करता है मुझे NULL
वाले कॉलम पर विभाजित करने की कोशिश करने वाले डैपर में मल्टीमैप्स के साथ कोई समस्या है। डैपर ऑब्जेक्ट को तुरंत चालू नहीं करता है और मेरे मैपिंग फ़ंक्शन को ऑब्जेक्ट के बजाय null
प्राप्त होता है।डैपर मल्टीमैप नल मूल्य
यह मेरा नया परीक्षण है:
class Product
{
public int Id { get; set; }
public string Name { get; set; }
public Category Category { get; set; }
}
class Category
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public void TestMultiMapWithSplitWithNullValue()
{
var sql = @"select 1 as id, 'abc' as name, NULL as description, 'def' as name";
var product = connection.Query<Product, Category, Product>(sql, (prod, cat) =>
{
prod.Category = cat;
return prod;
}, splitOn: "description").First();
// assertions
product.Id.IsEqualTo(1);
product.Name.IsEqualTo("abc");
product.Category.IsNotNull();
product.Category.Id.IsEqualTo(0);
product.Category.Name.IsEqualTo("def");
product.Category.Description.IsNull();
}
लाइन है कि विफल रहता है तथ्य यह है कि cat
मानचित्रण कार्य करने के लिए पारित कर दिया null
है की वजह से product.Category.IsNotNull();
है।
मैं भी वर्ग का दावा करने के लिए इस विधि को जोड़ दिया है:
public static void IsNotNull(this object obj)
{
if (obj == null)
{
throw new ApplicationException("Expected not null");
}
}
मुझे ट्विटर पर ट्विटर को पिंग करने में मदद करना अच्छा लगेगा जो खिड़कियों के लिए जिथब लिखते हैं। मुझे पता है कि वे इस लाइन को समाप्त करने वाली समस्या को खोजने के लिए कड़ी मेहनत कर रहे हैं –
@ सैमसाफ्रॉन - आपकी टिप्पणी के लिए धन्यवाद। अगर आप इसे हल करने के बाद मुझे बताते हैं, तो मैं अपने परिवर्तनों को धक्का दे सकता हूं। आप मेरी पोस्ट से परीक्षण की प्रतिलिपि बना सकते हैं, हालांकि - यह स्पष्ट है कि परिवर्तन कहाँ जाना चाहिए ;-) पीएस। मुझे खिड़कियों के लिए जिथब पसंद है। अगर मुझे परीक्षण के साथ मदद मिलती है तो मुझे बताएं। –
मैंने डैपर के लिए एक पीआर भेजा है जो इन पंक्तियों को समाप्त करने वाली समस्याओं को दूर करना चाहिए।अगर वे अभी भी दिखते हैं तो मुझे बताएं। कहानी का नैतिक: * कॉपी-पेस्ट [यह फ़ाइल] (https://gist.github.com/2802523#file_the+original+guy+used+autocrlffalse) '.gitattributes' के रूप में यदि मूल व्यक्ति' autocrlf = false '* कॉपी-पेस्ट [यह फ़ाइल] (https://gist.github.com/2802523#file_the+original+guy+used+autocrlftrue)' .gitattributes' के रूप में यदि वह 'autocrlf = true' –