2016-05-21 7 views
0

Im Moment habe ich Modelle wie folgt aussehen:Wie Add-Migration einschließlich Privateigentum zu machen?

public abstract class Base 
{ 
    public Guid Id { get; set; } 
    private byte[] RowVersion { get; set; } 
} 

public sealed class Derived : Base 
{ 
    public string Name { get; set; } 
} 

Beim Laufen Add-Migration alles funktioniert, wie ich erwartet hatte, aber mit Ausnahme keine RowVersion Spalte Schöpfung.

Gibt es trotzdem, es einschließlich RowVersion Spalte zu machen?

+0

Ich denke, dass Sie das Attribut [Spalte] über die private Eigenschaft verwenden können. –

+0

Ich habe schon versucht, und es funktioniert nicht :( – UltimaWeapon

Antwort

0

Usualy EF ermöglicht es Ihnen, über fließend api zur Karte:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder 
     .Entity() 
     .Property(p => p.Property); 
} 

Aber Ihr Privateigentum ist nicht sichtbar ....

So haben Sie eine EntityTypeConfiguration erstellen müssen, und registrieren sie:

public abstract class Base 
{ 
    public Guid Id { get; set; } 
    private byte[] RowVersion { get; set; } 

    public class BaseConfiguration : EntityTypeConfiguration<Base> 
    { 
     public BaseConfiguration() 
     { 
      Property(p => p.RowVersion); 
     } 
    } 

} 

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder 
     .Configurations.Add(new Base.BaseConfiguration()); 
} 
+0

Danke für die Idee! Ich löste das Problem bereits durch den Wechsel von privat zu geschützt stattdessen. Und es funktioniert. – UltimaWeapon

0

Sie haben die Zeitstempel Anmerkung zu setzen:

public abstract class Base 
{ 
    public Guid Id { get; set; } 

    [Timestamp] 
    public byte[] RowVersion { get; set; } 
} 

public sealed class Derived : Base 
{ 
    public string Name { get; set; } 
} 

Warum ist Ihre drvied Klasse versiegelt ?! Dynamischer Proxy funktioniert nicht! pass auf das auf. und es muss öffentlich sein (zur Reflexion).

+0

Vielen Dank für Ihre Antwort! Aber mein Problem ist nicht falsch Spalte Typ. – UltimaWeapon

Verwandte Themen