2016-11-01 2 views
0

Avez-vous une table dans SQL Server définie parPuis-je avoir le premier code TPH avec une classe de base non abstraite?

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] 

qui se trouve être la table Report Devexpress XAF.

Dans mon contexte de données que j'ai

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

Je veux être en mesure de traiter le champ nom_type_données comme une colonne discriminante sans interférer avec la façon dont fonctionne ReportDataV2 déjà dans mon code.

J'ai essayé ce qui suit, mais Entity Framework détecte que la structure de données a changé, et si je génère la migration, je vois qu'il essaie de recréer la table ReportDataV2.

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

Je pense que mon problème est peut-être que je veux utiliser une colonne qui est nvarchar (Max) comme discriminateur colonne. Si je cours une migration le code généré a le champ avec la longueur 4000 –

+0

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

Répondre

0

La colonne discriminante doit avoir une limite de taille, comme une colonne indexée a besoin d'une limite de taille