我正在使用Entity Framework构建一个web应用程序,数据库是在启动时创建的,我的seed方法将一些实体添加到数据库中,没有任何问题。此外,实体的检索工作也没有任何问题。
我的问题是,如果我试图从我的UI层创建一个实体,我会遇到错误OriginalValues cannot be used for entities in the Added state
。这个异常并没有抛给UI,但我在深入研究这个问题时发现了它。
我发生在我的:
public virtual TEntity Add(TEntity entity)
{
var entry = _context.Entry(entity);
entry.State = EntityState.Added;
_dbSet.Add(entity);
return entity;
}
截图:
实体非常小,并且映射:
public abstract class EntityBase
{
public int Id { get; set; }
}
public class AccessCode : EntityBase
{
public string Code { get; set; }
public int UsageCount { get; set; }
}
public class AccessCodeMapping : EntityTypeConfiguration<AccessCode>
{
public AccessCodeMapping()
{
// Table
ToTable("AccessCode");
// Primary key
HasKey(x => x.Id);
// Properties
Property(accesscode => accesscode.Code).IsRequired().HasMaxLength(256);
Property(accesscode => accesscode.UsageCount).IsRequired();
}
}
这就是我如何创建一个用于演示目的的测试访问代码
var ac = new AccessCode {Code = "321", UsageCount = 0};
_accessCodeService.Create(ac);
_unitOfWork.Save();
return View("Login");
有人能找出为什么会发生这个错误吗?我迷路了。:-)
附言:如果有一些你想看的代码,请告诉我。
发布于 2017-10-04 02:34:07
在exception下,查找:
$exception.EntityValidationErrors[n].ValidationErrors[n].ErrorMessage
$exception.EntityValidationErrors[n].ValidationErrors[n].PropertyName
其中n是数组索引(可能不止一个)。
https://stackoverflow.com/questions/22422057
复制相似问题