क्या क्लास प्रॉपर्टी के बजाय क्लास फील्ड में टेबल कॉलम को मैप करना संभव है और कैसे?इकाई फ्रेमवर्क कोड पहला: निजी फ़ील्ड को कैसे मैप करें?
आप यह कर सकते :)
इस लिंक का पालन करें: http://weblogs.asp.net/ricardoperes/archive/2013/08/22/mapping-non-public-members-with-entity-framework-code-first.aspx
यह एक आम अनुरोध है, और वास्तव में समझ में आता है; हमें LINQ अभिव्यक्तियों और थोड़ा प्रतिबिंब जादू का उपयोग करने की आवश्यकता है। सबसे पहले, एक अभिव्यक्ति है कि एक सदस्य की ओर इशारा करता लौटने के लिए एक सहायक समारोह:,
public static class ExpressionHelper
{
public static Expression<Func<TEntity, TResult>> GetMember<TEntity, TResult>(String memberName)
{
ParameterExpression parameter = Expression.Parameter(typeof(TEntity), "p");
MemberExpression member = Expression.MakeMemberAccess(parameter, typeof(TEntity).GetMember(memberName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single());
Expression<Func<TEntity, TResult>> expression = Expression.Lambda<Func<TEntity, TResult>>(member, parameter);
return (expression);
}
}
फिर, हम यह DbContext.OnModelCreating विधि पर कॉल StructuralTypeConfiguration.Property को पैरामीटर के रूप:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Project>().Property(ExpressionHelper.GetMember<Project, Decimal>("Budget")).IsRequired();
base.OnModelCreating(modelBuilder);
}
+1 मैं सहमत हूं। मैं एक लिंक खोज रहा हूं जो पोस्ट करने से पहले इसे समझाता है, लेकिन मुझे यह नहीं मिला। वैसे भी, मुझे पूरा यकीन है कि ईएफ कैसे काम करता है। – Jonathan
मैंने पहले से ही इन सभी दस्तावेजों को पढ़ लिया है। बीटीडब्ल्यू, वे बूढ़े हैं। नए आरसी ने भी बदलाव तोड़ दिया है। यही कारण है कि मैं पूछता हूं। ef ef es – mynkow
यह सच है कि ब्रेकिंग में परिवर्तन हुए हैं, लेकिन खेतों में मैपिंग के लिए समर्थन AFAIK एजेंडा में नहीं था। और दिनांकित दस्तावेजों के लिए खेद है, आपके ईएफ ज्ञान के स्तर को नहीं पता था और सोचा कि वे वैसे भी उपयोगी हो सकते हैं। –