我看过类似的问题,建议我应该使用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; }
}
答案 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。