2010-01-01 11 views
25

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

+3

आंशिक कक्षाओं का उपयोग करना ऐसा करने का सही तरीका है, और मेरे लिए ठीक काम करता है। आपको अपना कोड, अपनी मैपिंग और सटीक त्रुटि दिखाना होगा, जैसा आपने वर्णन किया है, इस प्रकार अब तक पहले से ही काम करता है। –

उत्तर

7

उन गुणों या विधियों को जोड़ने के लिए आंशिक कक्षाओं का उपयोग करें जिन्हें आप जोड़ना चाहते हैं। जैसे

namespace WhateverNamespaceYourEntityModelIsIn 
{ 
    public partial class TheNameOfYourEntity 
    { 
      public string MyNewProperty { get; set; } 
    } 
} 

और यह आपको करना चाहिए।

+0

यदि आप कोड फर्स्ट से काम कर रहे हैं, तो – bkwdesign

+1

से नीचे पढ़ें, कोड फर्स्ट – Toolkit

+0

कोड कोड के मामले में यह गलत जवाब है, विशेष रूप से Kniganapolke का जवाब देखें। [नोटमैप] का प्रयोग करें। –

69

आप अपनी संपत्ति को [NotMapped] विशेषता के साथ भी चिह्नित कर सकते हैं या धाराप्रवाह API से Ignore विधि का उपयोग कर सकते हैं।

संपत्ति

public class EntityName 
{ 
    [NotMapped] 
    private string PropertyName { get; } 
} 

Fluent एपीआई

public class Entities : DbContext 
{ 
    public DbSet<EntityType> Users { get; set; } 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     // Some database configuration 
     modelBuilder.Entity<EntityType>() 
      .Ignore(i => i.PropertyName); 
    } 
} 
+0

इस एक अच्छा समाधान है जब आप इकाई ऑब्जेक्ट में गुण जोड़ना चाहते हैं, लेकिन उन्हें डेटाबेस या मैपिंग फ़ाइल – mknopf

+0

[NotMapped] विशेषता का उपयोग के साथ जुड़े नहीं चाहते हैं यदि आप एक संपत्ति आप पर की जरूरत है जाने के लिए सबसे आसान तरीका है एंटीटीस्टेट जैसी सभी संस्थाएं जिन्हें आप बेस क्लास पर घोषित करते हैं। हर कॉन्फ़िगरेशन क्लास को संपादित करने की आवश्यकता नहीं है और जब भी कोई नई इकाई पेश की जाती है तो ऐसा करना याद रखें। –

+0

अरे, आपके उत्तर के लिए धन्यवाद। लेकिन जब मैं इसे आज़माता हूं, तो मुझे मिलता है: "गैर-खुले प्रकार में अनुपयुक्त मान का समर्थन नहीं करता है।" मैं क्या गलत कर रहा हूँ? – Toodoo

1

मैं गंभीरता से बातचीत करने के लिए देर हो रही है, लेकिन आप यह भी serializable और serializable के रूप में संपत्ति के रूप में आंशिक चिह्नित करना चाहते - वस्तुओं अगर तुम कभी JSON करने की योजना या क्रमानुसार:

[Serializable()] 
public partial class MyClass { 
    private System.Nullable<int> _Age; 
    [global::System.Runtime.Serialization.DataMemberAttribute(Order = 4)] 
    public System.Nullable<int> Age { 
      ... 
    } 
} 

दोनों [Serializable()] और [वैश्विक:] निर्देशों की आवश्यकता है। यदि आपने [ग्लोबल:] को बाहर रखा है, तो जब भी आप इसे क्रमबद्ध करते हैं, तो इसे अनदेखा कर दिया जाएगा और धारावाहिकरण में शामिल नहीं किया जाएगा।

+0

बढ़िया! मैं अपने पहियों को इतनी देर तक कताई कर रहा था कि यह पता लगाने की कोशिश कर रहा हूं कि मेरे पोस्ट किए गए चरों में से केवल एक ही क्यों शून्य था। यह चाल है! धन्यवाद! – RobDigital

0

इस पृष्ठ ने वास्तव में मेरी मदद की। Kniganapolke के जवाब को देखने के बाद मैं अपनी मैपिंग कॉन्फ़िगरेशन में जो जोड़ता हूं उसे जोड़ दूंगा।

public TheObjectName() 
    { 
     this.HasKey(t => t.ID); 
     this.Ignore(t => t.IsProcess); //we don't want EF to worry about this 
    } 

धन्यवाद सबको, धन्यवाद SO!

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