Я использую Entity Framework для создания веб-приложения, база данных создается при запуске, а мой метод seed добавляет некоторые объекты в базу данных без каких-либо проблем. Также извлечение объектов работает без проблем.
Моя проблема в том, что если я попытаюсь создать сущность из моего слоя пользовательского интерфейса, я сталкиваюсь с ошибкой OriginalValues cannot be used for entities in the Added state
. Исключение не выбрасывается в пользовательский интерфейс, но я нашел его, когда я окунулся в проблему.
В моем случае:
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");
Может ли кто-нибудь понять, почему эта ошибка происходит? Я потерялся.: -)
P.s Сообщите мне, есть ли некоторые фрагменты кода, которые вы хотите видеть.