如何修复错误'名称:不允许指定名称:_destroy'?

时间:2012-06-01 15:32:34

标签: c# asp.net-mvc entity-framework

我看过类似的问题,建议我应该使用column属性来更改列的名称,但是我已经完成了这个并且仍然会收到错误。这是我的Model类:

public class Task
{
    public int TaskID { get; set; }
    public string TaskDescription { get; set; }
    public bool IsDone { get; set; }

    [Column("Active")]
    public bool _destroy { get; set; }
}

1 个答案:

答案 0 :(得分:4)

问题是Entity Framework不允许实体属性名称以下划线字符(以及其他字符类)开头。使用Reflector,我能够跟踪用于验证属性名称的正则表达式,它是以下内容:

@"[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Nl}][\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Nl}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\p{Cf}]{0,}"

这意味着实体属性名称只能从以下Unicode字符类中获取的字符开始:

Ll,Lu,Lt,Lo,Lm,Nl

属性名称中的其余字符可能包括这些类,以及以下内容:

Mn,Mc,Nd,Pc,Cf

下划线字符(U + 005F)位于Pc类中。你可以通过重命名_destroy属性来删除错误,比如说destroy。您可以找到字符类引用here