के साथ किसी संग्रहीत प्रक्रिया के परिणामों को मैप करने के लिए एंटीटी फ्रेमवर्क का उपयोग कैसे करें मैं सी # सर्वर में किसी इकाई को SQL सर्वर संग्रहीत प्रक्रिया के आउटपुट की मैपिंग करने के लिए इकाई फ्रेमवर्क का उपयोग करके एक मूल उदाहरण बनाने का प्रयास कर रहा हूं। , लेकिन अधिक गूढ़ नामों के विपरीत इकाई के पास अलग-अलग (दोस्ताना) नाम पैरामीटर हैं। मैं इसे फ्लुएंट (यानी गैर edmx) वाक्यविन्यास के साथ करने की कोशिश भी कर रहा हूं।अलग-अलग नामित पैरामीटर
क्या काम करता है ....
संग्रहीत प्रक्रिया मान कहा रिटर्न: UT_ID, UT_LONG_NM, UT_STR_AD, UT_CITY_AD, UT_ST_AD, UT_ZIP_CD_AD, UT_CT
अगर मैं इस तरह एक वस्तु बनाने ...
public class DBUnitEntity
{
public Int16 UT_ID { get; set; }
public string UT_LONG_NM { get; set; }
public string UT_STR_AD { get; set; }
public string UT_CITY_AD { get; set; }
public string UT_ST_AD { get; set; }
public Int32 UT_ZIP_CD_AD { get; set; }
public string UT_CT { get; set; }
}
और इस तरह एक EntityTypeConfiguration ...
public class DbUnitMapping: EntityTypeConfiguration<DBUnitEntity>
{
public DbUnitMapping()
{
HasKey(t => t.UT_ID);
}
}
... जो मैं DbContext की OnModelCreating में जोड़ने के लिए, तो मैं संस्थाओं सिर्फ डेटाबेस, जो अच्छा है, इस का उपयोग कर के बाहर ठीक प्राप्त कर सकते हैं ....
var allUnits = _context.Database.SqlQuery<DBUnitEntity>(StoredProcedureHelper.GetAllUnitsProc);
लेकिन, काम नहीं करता क्या
अगर मैं इस तरह एक इकाई, मित्रवत नाम के साथ चाहते हैं ....
public class UnitEntity : IUnit
{
public Int16 UnitId { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public Int32 Zip { get; set; }
public string Category { get; set; }
}
और इस तरह एक EntityTypeConfiguration ...
public UnitMapping()
{
HasKey(t => t.UnitId);
Property(t => t.UnitId).HasColumnName("UT_ID");
Property(t => t.Name).HasColumnName("UT_LONG_NM");
Property(t => t.Address).HasColumnName("UT_STR_AD");
Property(t => t.City).HasColumnName("UT_CITY_AD");
Property(t => t.State).HasColumnName("UT_ST_AD");
Property(t => t.Zip).HasColumnName("UT_ZIP_CD_AD");
Property(t => t.Category).HasColumnName("UT_CT");
}
जब मैं डेटा मैं संदेश के साथ एक System.Data.EntityCommandExecutionException प्राप्त प्राप्त करने की कोशिश ....
"डेटा रीडर है निर्दिष्ट 'DataAccess.EFCodeFirstSample.UnitEntity' के साथ असंगत। प्रकार के एक सदस्य, 'यूनिट आईडी', के पास समान नाम वाले डेटा रीडर में एक समान कॉलम नहीं है। "
यदि मैं इकाई में" संग्रहीत प्रक्रिया "संपत्ति जोड़ता हूं, तो यह जाता है और शिकायत करता है ।? अगले "अज्ञात" संपत्ति
"HasColumnName" के रूप में मैं इस कोड की पहली संग्रहीत प्रक्रिया एफई की धाराप्रवाह शैली में की उम्मीद/यह चाहते काम नहीं करता है
अद्यतन:
उपयोग करने की कोशिश डेटाअनोटेशन (घटक मॉडेल से कुंजी, और एंटर से कॉलम yFramework) ... आला
public class UnitEntity : IUnit
{
[Key]
[Column("UT_ID")]
public Int16 UnitId { get; set; }
public string Name { get; set; }
डेटाबेस समान नामकरण के साथ DBUnitEntity के लिए कोई भी EntityTypeConfiguration की आवश्यकता को दूर किया था कि (अर्थात बस [कुंजी] विशेषता जोड़ना), लेकिन उस संपत्ति के नाम के साथ इकाई के लिए कुछ भी नहीं किया जो डेटाबेस से मेल नहीं खाता (पहले की तरह ही त्रुटि)।
मुझे मॉडल में घटक मॉडेल एनोटेशन का उपयोग करने में कोई फर्क नहीं पड़ता है, लेकिन मैं वास्तव में मॉडल में एंटीटीफ्रेमवर्क एनोटेशन का उपयोग नहीं करना चाहता हूं अगर मैं इसे मदद कर सकता हूं (मॉडल को किसी विशिष्ट डेटा से जोड़ना नहीं चाहता पहुँच ढांचा)
मैंने आपके क्यू को पहले देखा है - मुझे गैर मानक लेआउट का किराया हिस्सा दिखाई देता है, वे सभी कुछ समायोजन के साथ काम करते हैं। क्या आप कुछ चीजों की जांच कर सकते हैं - आपके पास पूर्ण-धाराप्रवाह मामले के लिए उत्पन्न माइग्रेशन फ़ाइल क्या है। और क्या आपने केवल एक टेबल बनाने की कोशिश की जिसमें एसपी रिटर्न जैसे कॉलम हैं - और ऊपर दिए गए नामों के साथ झुकाव करने का प्रयास करें, देखें कि क्या यह काम करता है। मैं स्थानीय रूप से परीक्षण करना चाहता हूं लेकिन एसपी मुझे थोड़ा दूर रख रहा है। या संग्रहित प्रक्रिया आदि के साथ कुछ दोहराने योग्य, छोटे लेकिन पूर्ण उदाहरण – NSGaga
एक ही मुद्दे पर आया लेकिन ईएफ 6 के साथ आया। क्या कोई उपर्युक्त ईएफ 6 का उपयोग करने में सक्षम है? –