2011-12-09 18 views
6

मैं एक वर्ग है:एफई में नहीं एक स्तंभ के रूप में एक संपत्ति मैप करने के लिए कैसे 4.1

public class classParty 
{ 
    private int _arrivedCount; 

    public int PartyID {get; private set;} 
    public DateTime PartyDate {get; private set;} 
    public int ArrivedCount 
    { 
     get 
     { 
      return _arrivedCount; 
     } 

     set 
     { 
      _arrivedCount = value; 
     } 
    } 
} 

मैं PartyId और PartyDate मैप कर सकते हैं, लेकिन मैं ArrivedCount के लिए एक कॉलम की जरूरत नहीं है (इसमें एक क्षण है समय गिनती, यह जारी नहीं है)।

मैं "ArrivedCount" नामक कॉलम की तलाश रोकने के लिए ईएफ 4.1 कैसे कहूं? यह टेबल में नहीं है। यह टेबल में नहीं होने वाला है। यह बस वस्तु की एक संपत्ति है और यह सब कुछ है।

अग्रिम धन्यवाद।

संपादित करें: क्लासपार्टी के लिए फ़्लुएंट एपीआई कॉन्फ़िगरेशन यहां दिया गया है।

public class PartyConfiguration : EntityTypeConfiguration<classParty> 
{ 
    public PartyConfiguration() 
     : base() 
    { 
     HasKey(p => p.PartyID); 

     Property(p => p.PartyID) 
      .HasColumnName("PartyID") 
      .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity) 
      .IsRequired(); 
     Property(p => p.PartyDate) 
      .HasColumnName("PartyDate") 
      .IsRequired(); 

     ToTable("Party"); 
    } 
} 

उत्तर

8
modelBuilder.Entity<classParty>().Ignore(x => x.ArrivedCount); 
+0

हाँ, बस इतना ही। EntityType कॉन्फ़िगरेशन क्लास में जोड़ने के लिए कोड की एक पंक्ति है? मैं सभी मैपिंग्स (और "अनैपिंग्स") को एक ही स्थान पर रखना चाहता हूं। लेकिन अगर नहीं, यह ठीक काम करता है। –

+1

@ टॉमपैडिला: अपने 'पार्टी कॉन्फ़िगरेशन' कन्स्ट्रक्टर में 'अनदेखा करें (x => x.ArrivedCount);' का उपयोग करें। – Slauma

14

डेटा एनोटेशन के साथ:

[NotMapped] 
public int ArrivedCount 
//... 

या Fluent एपीआई का उपयोग कर:

modelBuilder.Entity<classParty>() 
    .Ignore(c => c.ArrivedCount); 
संबंधित मुद्दे