我想创建一个方法,使用它可以使用Entity Framework 2.0-Preview添加/更新实体 我正在使用插入更新模式 更多参考:https://msdn.microsoft.com/en-us/data/jj592676.aspx(最后一个例子)
以下是方法代码:
public string AttachEntity(Book book)
{
_context.Entry(book).State = (book.Id == 0)
? Microsoft.EntityFrameworkCore.EntityState.Added
: Microsoft.EntityFrameworkCore.EntityState.Modified;
string msg = $"Book details {_context.Entry(book).State} Successfully";
_context.Book.Attach(book);
_context.SaveChanges();
return msg;
}
并得到以下错误:
InvalidOperationException:属性' Id'在实体类型' Book'具有 尝试将实体状态更改为时的临时值 '不变&#39 ;.要么明确设置永久值,要么确保永久值 数据库配置为生成此属性的值。
但是,自动为书籍表生成了Id。
以及该行动的网址:
[添加] Home / AttachEntity?Id = 1& Title = 4th book& Description =通过attach方法添加的新书& Price = 120& AuthorId = 2
[更新] Home / AttachEntity?Title = 4th book& Description =通过attach方法添加新书&价格= 120& AuthorId = 2