0

Ich versuche, eine Klasseneigenschaft beim Einfügen von Daten in die Datenbank zu ignorieren, indem Metadaten für die Klasse verwendet werden, aber sie funktioniert nicht. Ich verwende EF mit 6. Ich habe versucht, sowohl die Metadaten und Teilklasse sind in der gleichen Anordnung wie die Klassen von EF erzeugtMetadaten-Klasse funktioniert nicht in Entity Framework? Ignorieren der Klasseneigenschaft

[NotMapped] und [DatabaseGenerated(DatabaseGeneratedOption.Computed)]

verwendet, um eine interne versiegelten Klasse (für Metadaten) in meinem Teil

Klasse
namespace XeroDataStore.XeroDatabase 
{ 
    [MetadataType(typeof(TempAddressMetadata))] 
    public partial class TempAddress 
    { 
    } 

    [MetadataType(typeof(TempContact.TempContactMetadata))] 
    public partial class TempContact 
    { 
     internal sealed class TempContactMetadata 
     { 
      [NotMapped] 
      public Nullable<System.DateTime> UploadDate { get; set; } 
     } 
    } 
} 

namespace XeroDataStore.XeroDatabase 
{ 
    public class TempAddressMetadata 
    { 
     [NotMapped] 
     public Nullable<System.DateTime> UploadDate { get; set; } 
    } 
} 

EF Klasse generiert

namespace XeroDataStore.XeroDatabase 
{ 
    public partial class TempAddress 
    { 
     public int RowId { get; set; } 
     public int ClientID { get; set; } 
     public System.Guid ContactID { get; set; } 
     public string AddressType { get; set; } 
     public string AddressLine1 { get; set; } 
     public string AddressLine2 { get; set; } 
     public string AddressLine3 { get; set; } 
     public string AddressLine4 { get; set; } 
     public string City { get; set; } 
     public string Region { get; set; } 
     public string PostalCode { get; set; } 
     public string Country { get; set; } 
     public string AttentionTo { get; set; } 
     public Nullable<System.DateTime> UploadDate { get; set; } 

     public virtual TempContact TempContact { get; set; } 
    } 
} 

Was bin ich hier?

+0

ignor Ihr Eigentum in Datacontext-Klasse zu ignorieren. –

+0

Dies ist nicht Code zuerst. Offenbar kann ich die automatisch generierte Methode onModelCreating nicht überschreiben. –

Antwort

0

Verwenden Sie die Fluent-API, um sicherzustellen, dass Ihre Modellklassen POCO sind und nichts mit dem Datenzugriff zu tun haben.

In Ihrem Datenkontext, OnModelCreating methoed Verwenden Sie den folgenden Code, um die Eigenschaft

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Entity<TempContact>().Ignore(a => a.UploadDate); 
     } 
+0

Dies ist nicht Code First. Offenbar kann ich die automatisch generierte Methode onModelCreating nicht überschreiben. - –

Verwandte Themen