2009-11-10 14 views
19

के साथ डेटाबेस से फ़ील्ड/प्रॉपर्टी को बाहर निकालें, मुझे यह जानना होगा कि डेटाबेस से कुछ फ़ील्ड को बाहर करने का कोई तरीका है? उदाहरण के लिए:एंटिटी फ्रेमवर्क 4 और कोड-फर्स्ट

public class Employee 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string FatherName { get; set; } 

    public bool IsMale { get; set; } 
    public bool IsMarried { get; set; } 

    public string AddressAs { get; set; } 
} 

मैं डेटाबेस से पता एएस फ़ील्ड को कैसे बाहर निकाल सकता हूं?

+0

[इकाई की रूपरेखा 4.1 संहिता प्रथम में एक वर्ग संपत्ति की उपेक्षा] की संभावित डुप्लिकेट (http://stackoverflow.com/questions/10385248/ignoring-a-class-property-in-entity-framework-4-1-code-first) –

उत्तर

20

वर्तमान संस्करण में एक संपत्ति को बाहर करने के लिए एक ही रास्ता स्पष्ट रूप से सभी स्तंभों को मैप करने के लिए है:

builder.Entity<Employee>().MapSingleType(e => new { 
    e.Id, 
    e.Name, 
    e.FatherName, 
    e.IsMale, 
    e.IsMarried 
}); 

क्योंकि AddressAs यह संदर्भित नहीं है इकाई/डाटाबेस का हिस्सा नहीं है।

builder.Entity<Employee>().Exclude(e => e.AddressAs); 

मैं सुझाव है कि आप EFDesign ब्लॉग पर एक टिप्पणी छोड़ बताओ, इस सुविधा :)

आशा इस मदद करता है

का अनुरोध:

एफई टीम कुछ इस तरह जोड़ने पर विचार कर रहा है

एलेक्स

+3

मुझे एहसास हुआ कि आज के रूप में ऐसा करने का एकमात्र तरीका आप जिस तरह से उल्लेख किया है। मैंने इसे एक लंबे समय से ईएफडिज़ाइन ब्लॉग पर पोस्ट किया: http://blogs.msdn.com/efdesign/archive/2009/10/12/code-only-further-enhancements.aspx – Yogesh

+0

यदि वे ' । शामिल करें() ' – Zapnologica

+0

क्या T4 टेम्पलेट का उपयोग कर मॉडल में सभी वर्गों से किसी विशेष फ़ील्ड को बाहर करने का कोई तरीका है? –

30

मुझे पता है कि यह एक पुराना सवाल है, लेकिन अगर कोई (जैसे मेरे) खोजकर्ता से आता है एच ...

अब यह करने के लिए इकाई ढांचे 4.3 में संभव है। भविष्य में संदर्भ के

builder.Entity<Employee>().Ignore(e => e.AddressAs); 
+2

या वीबी 'बिल्डर में। इंटेंटी (कर्मचारी का)। अनदेखा करें (फ़ंक्शन (ई) ई। एड्रेसएएस)' –

+3

क्या यह वैश्विक होगा? मेरा मतलब है, अगर मैं सिर्फ इस कॉल के लिए ऐसा करना चाहता हूं तो क्या होगा? क्या मैं इसे वापस चालू कर सकता हूं, तो बोलने के लिए? – vbullinger

+0

हां अभी भी उपयोगी है। आपने मुझे 40 मिनट का शोध बचाया। –

49

: तुम इतनी है कि यह करना होगा आप डेटा व्याख्या का उपयोग कर सकते हैं MSDN EF - Code First Data Annotations

[NotMapped]   
public string AddressAs { get; set; }