2017-07-19 65 views
0

我使用的代碼第一次的做法,從我的模型創建我的數據的基礎上,我用這樣在我的班級數據註釋:實體框架第一數據編碼標註的MaxLength和表不工作

using System.ComponentModel.DataAnnotations; 
using System.ComponentModel.DataAnnotations.Schema; 

[Table("Cat1")] 
public class Cat 
{ 
    public int ID { get; set; } 
    [Required] 
    [MaxLength(50)] 
    public string Nombre { get; set; } 
    [StringLength(500)] 
    public string Descripción { get; set; } 
} 

using System.Data.Entity; 
public class Contexto: DbContext { 
    public DbSet<Cat> Cats { get; set; } 
    protected override void OnModelCreating(DbModelBuilder MB) { 
     MB.Conventions.Remove<PluralizingTableNameConvention>(); 
     MB.Conventions.Remove<OneToManyCascadeDeleteConvention>(); 
     MB.Conventions.Remove<ForeignKeyIndexConvention>(); 
     MB.Conventions.Remove<ManyToManyCascadeDeleteConvention>(); 
     MB.ComplexType<Departamento>(); 
     MB.ComplexType<Porción>(); 
    } 
} 

但對於一些原因只有[Required]和[StringLength]註釋得到應用。我的數據庫結束是這樣的:

TABLE [dbo].[Cats] (
    [ID]   INT   IDENTITY (1, 1) NOT NULL, 
    [Nombre]  NVARCHAR (MAX) NOT NULL, 
    [Descripción] NVARCHAR (500) NULL, 
    CONSTRAINT [PK_dbo.Cats] PRIMARY KEY CLUSTERED ([ID] ASC) 
); 

我想知道爲什麼一些註釋工作,其他人不。我知道我可以使用'StringLength'而不是'MaxLength',但是我沒有'Table'和其他可能有相同問題的其他選項。它曾經工作得很好,但之後突然停止工作。我怎樣才能讓'MaxLenght'和'Table'註解再次起作用?編輯:其他註釋不工作:ComplexType和NotMapped。

我使用EF 6.1.3和targetframework net40和Visual Studio 2017

謝謝!

+0

向我們展示'OnModelCreating'方法 –

+0

我編輯了它以顯示'OnModelCreating'方法,我沒有首先添加它,因爲它沒有任何與'Cat'類有關的東西,但也許我錯過了一些東西那裏... – David

+0

突然?修改你的提交。 –

回答

0

因此,經過很多小時,我決定從頭開始整個項目。我唯一不同的是,在添加任何引用或NuGet包之前,在每個項目開始時指定.Net Framework 4.0。我認爲最後一次我手動移動了許多最終令視覺工作室混淆的東西,對於intellisense來說,表格,複雜類型和NotMaped註釋很好,但實際上沒有應用。

相關問題