2016-11-01 1 views
0

In haben eine Tabelle in SQL Server definiert durchKann ich EF-Code zuerst TPH mit einer nicht abstrakten Basisklasse haben?

CREATE TABLE [dbo].[ReportDataV2](
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    [DataTypeName] [nvarchar](max) NULL, 
    [IsInplaceReport] [bit] NOT NULL, 
    [PredefinedReportTypeName] [nvarchar](max) NULL, 
    [Content] [varbinary](max) NULL, 
    [DisplayName] [nvarchar](max) NULL, 
    [ParametersObjectTypeName] [nvarchar](max) NULL, 
CONSTRAINT [PK_dbo.ReportDataV2] PRIMARY KEY CLUSTERED 
(
    [ID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 

, die das Dev Express XAF Bericht Tabelle werden passiert. das DataTypeName Feld als Diskriminator Spalte behandeln können, ohne die Art und Weise zu stören ReportDataV2 arbeitet bereits in meinem Code

In meinem Datenkontext Ich habe

public DbSet<ReportDataV2> ReportDataV2 { get; set; } 

ich will.

Ich habe Folgendes versucht, aber Entity Framework erkennt, dass sich die Datenstruktur geändert hat, und wenn ich die Migration erzeuge, sehe ich, dass sie versucht, die ReportDataV2-Tabelle neu zu erstellen.

public class OrderCountReport2Configuration : EntityTypeConfiguration<ReportDataV2> 
{ 
    public OrderCountReportConfiguration() 
     : base() 
    { 
     ToTable("ReportDataV2", "dbo"); 

     HasKey(tp => tp.ID); 

     Map<OrderCountReport>(m => m.Requires("DataTypeName").HasValue("OrderCountReport")); 

    } 
} 

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

ich mein Problem vielleicht denken, dass ich eine Spalte verwenden möchten, die nvarchar (max) als Diskriminator Säule. Wenn ich eine Migration ausführen, hat der generierte Code das Feld mit der Länge 4000 –

+0

http://stackoverflow.com/questions/5053335/entity-framework-ctp5-code-first-how-do-i-specify-the-type- der-diskriminator –

Antwort

0

Der Diskriminator Spalte eine Größenbegrenzung haben muss, genau wie eine indexierte Spalte muss eine Größenbegrenzung

Verwandte Themen