如何在实体Freamework Core 2.0预览中附加实体?

时间:2017-06-25 13:38:29

标签: entity-framework asp.net-core entity-framework-core

我想创建一个方法,使用它可以使用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

0 个答案:

没有答案