我尝试按照http://techbrij.com/generic-repository-unit-of-work-entity-framework-unit-testing-asp-net-mvc的架构设计构建一个小型网站,但我收到此错误“属性'Private'不是String或Byte数组。长度只能配置为String和Byte数组属性“。当我打电话
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数组。只能为String和Byte数组属性配置Length。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidOperationException:属性“Private”不是String或Byte数组。只能为String和Byte数组属性配置Length。
来源错误: 第32行:IEnumerable query = _dbset.Where(谓词).AsEnumerable(); 第33行:返回查询;
请告诉我代码发生了什么?我配置错误的地方!
答案 0 :(得分:7)
谢谢,我发现我为Class TableCate Entity的属性设置了MaxLength。我删除了它。它现在运作良好!
[Required]
//[MaxLength(1)]
public int Private { get; set; }
答案 1 :(得分:0)
我从另一个类复制了一个属性,并将Name和类型更改为boolean,因此StringLength Annotation不再有效:
[Required]
//[StringLength(50)]
public bool IsActive { get; set; }