我正在使用EF4 Code First(CTP5)生成我的数据库,我正在使用DataAnnotations来尝试控制生成的数据库架构。如果我使用[Required]属性,则该列正确生成为NOT NULL,但是当我尝试使用[StringLength(50)]属性时,我的所有列最终都会被创建为NVarChar(max)。
以下是我的一个字段(简化)的代码片段,以便您可以看到我的问题:
public class Person
{
public int PersonID { get; set; }
// This property is generated as NVarChar(max) NOT NULL
// I prefer it be NVarChar(50) NOT NULL
[Required(ErrorMessage="Please enter a first name")]
[StringLength(50, ErrorMessage="First name is too long")]
public string FirstName { get; set; }
}
如果[StringLength]属性不起作用,是否有另一种方法来控制生成的nvarchar列长度?
谢谢,
布伦特·斯图尔特
答案 0 :(得分:0)
我发现我遇到的问题是由LINQPad中的一个错误导致的,因为它没有准确地报告我的SQL Server CE 4数据库的列类型。 [StringLength]属性应该正常工作。