jan*_*ann 40 c# entity-framework
我正在使用Entity Framework构建一个Web应用程序,数据库是在启动时创建的,我的种子方法将一些实体添加到数据库中而没有任何问题.此外,实体的检索工作没有问题.
我的问题是,如果我尝试从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;
}
Run Code Online (Sandbox Code Playgroud)
截图:

实体非常小并且映射:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我为演示目的创建测试访问代码的方法
var ac = new AccessCode {Code = "321", UsageCount = 0};
_accessCodeService.Create(ac);
_unitOfWork.Save();
return View("Login");
Run Code Online (Sandbox Code Playgroud)
任何人都可以找出为什么会发生这种错误?我迷路了.:-)
Ps让我知道您是否希望看到一些代码片段.
小智 48
我曾经遇到过这个问题,并通过检查提交给数据库的字段来解决它.事实证明,我无意中试图将空值插入到设计为非null的列中.
dan*_*iel 33
在例外情况下,寻找:
$exception.EntityValidationErrors[n].ValidationErrors[n].ErrorMessage
$exception.EntityValidationErrors[n].ValidationErrors[n].PropertyName
Run Code Online (Sandbox Code Playgroud)
其中[n]是数组索引(可能有多个).
| 归档时间: |
|
| 查看次数: |
28667 次 |
| 最近记录: |