属性 'Private' 不是字符串或字节数组。只能为 String 和 Byte 数组属性配置长度

The property 'Private' is not a String or Byte array. Length can only be configured for String and Byte array properties

我尝试按照 http://techbrij.com/generic-repository-unit-of-work-entity-framework-unit-testing-asp-net-mvc 的架构设计来构建一个小型网站,但是当我调用

时出现此错误 "The property 'Private' is not a String or Byte array. Length can only be configured for String and Byte array properties."
User user = _userService.GetByName(username); from AccountController.cs

这里是调用堆栈:

> Kad.Repository.dll!Kad.Repository.GenericRepository<Kad.Model.Category>.FindBy(System.Linq.Expressions.Expression<System.Func<Kad.Model.Category,bool>> predicate) Line 32    C#

> Kad.Repository.dll!Kad.Repository.CategoryRepository.GetById(int id) Line 17  C#

> Kad.Service.dll!Kad.Service.CategoryService.GetById(int Id) Line 25   C#

> Kad.dll!Kad.Controllers.AccountController.Login(Kad.Models.LoginViewModel model, string returnUrl) Line 111   C#

属性 'Private' 不是字符串或字节数组。只能为 String 和 Byte 数组属性配置长度。

问题描述:当前网络请求执行过程中出现未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.InvalidOperationException:属性 'Private' 不是字符串或字节数组。只能为 String 和 Byte 数组属性配置长度。

来源错误: 第 32 行:IEnumerable query = _dbset.Where(predicate).AsEnumerable(); 第 33 行:return 查询;

请告诉我代码发生了什么?我哪里配置错了!

谢谢,我发现我为 Class TableCate 实体的 属性 设置了 MaxLength。我删除了它。现在效果很好!

[Required] 
//[MaxLength(1)] 
public int Private { get; set; }

我从另一个 class 复制了一个 属性 并将名称和类型更改为布尔值,因此 StringLength 注释不再有效:

[Required]
//[StringLength(50)]
public bool IsActive { get; set; }