3

我看过类似的问题,建议我应该使用 column 属性来更改列的名称,但我已经这样做了,但我仍然得到错误。这是我的模型类:

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; }
}
4

1 回答 1

4

问题是实体框架不允许实体属性名称以下划线字符开头(在其他字符类中)。使用 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 来消除错误。您可以在此处找到字符类参考。

于 2012-06-01T17:20:34.493 回答