使用EF4 Code First时,如何控制生成的nvarchar列的长度?

时间:2011-03-15 19:29:56

标签: entity-framework-4 data-annotations ef-code-first

我正在使用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列长度?

谢谢,
布伦特·斯图尔特

1 个答案:

答案 0 :(得分:0)

我发现我遇到的问题是由LINQPad中的一个错误导致的,因为它没有准确地报告我的SQL Server CE 4数据库的列类型。 [StringLength]属性应该正常工作。