首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OriginalValues不能用于处于已添加状态的实体

OriginalValues不能用于处于已添加状态的实体
EN

Stack Overflow用户
提问于 2014-03-15 17:40:14
回答 5查看 37.5K关注 0票数 47

我正在使用Entity Framework构建一个web应用程序,数据库是在启动时创建的,我的seed方法将一些实体添加到数据库中,没有任何问题。此外,实体的检索工作也没有任何问题。

我的问题是,如果我试图从我的UI层创建一个实体,我会遇到错误OriginalValues cannot be used for entities in the Added state。这个异常并没有抛给UI,但我在深入研究这个问题时发现了它。

我发生在我的:

代码语言:javascript
运行
复制
public virtual TEntity Add(TEntity entity)
{
    var entry = _context.Entry(entity);
    entry.State = EntityState.Added;
    _dbSet.Add(entity);

    return entity;
}

截图:

实体非常小,并且映射:

代码语言:javascript
运行
复制
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();
    }
}

这就是我如何创建一个用于演示目的的测试访问代码

代码语言:javascript
运行
复制
var ac = new AccessCode {Code = "321", UsageCount = 0};
_accessCodeService.Create(ac);
_unitOfWork.Save();
return View("Login");

有人能找出为什么会发生这个错误吗?我迷路了。:-)

附言:如果有一些你想看的代码,请告诉我。

EN

Stack Overflow用户

发布于 2017-10-04 02:34:07

在exception下,查找:

代码语言:javascript
运行
复制
$exception.EntityValidationErrors[n].ValidationErrors[n].ErrorMessage
$exception.EntityValidationErrors[n].ValidationErrors[n].PropertyName

其中n是数组索引(可能不止一个)。

票数 46
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22422057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档