我使用的代碼第一次的做法,從我的模型創建我的數據的基礎上,我用這樣在我的班級數據註釋:實體框架第一數據編碼標註的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
謝謝!
向我們展示'OnModelCreating'方法 –
我編輯了它以顯示'OnModelCreating'方法,我沒有首先添加它,因爲它沒有任何與'Cat'類有關的東西,但也許我錯過了一些東西那裏... – David
突然?修改你的提交。 –