如何更新Entity框架中的表?

时间:2013-09-26 09:38:34

标签: asp.net-mvc entity-framework

我从我的MVC项目调用一个Web服务,如果它成功,则返回进程完成。这个结果,我存储在名为y的变量中。

var y = Here pass required parameters and if it is successfull store result in y

当我在这里放置断点并且处理完成时,我可以在var y中看到结果。

因此,如果流程完成,我需要更新我的表。为此,我可以这样做吗?

  if( y = "Process complete")
  {
     update table code here 
  }

我不知道如何更新Entity Framework中的表。在这里,我需要更新名为table1的表并设置column2 = 1,第3列=第4列的值,其中第1列=第1列的值。

我所知道的是:

UPDATE tableName 
SET column2 = 1, column3 = context.FirstOrDefault().column4  
WHERE column1 =  context.FirstOrDefault(). column1

更新:

嗨我知道如何编写代码来更新table.But当我把断点和来到savechanges方法我得到属性导出是对象关键信息的一部分,无法修改错误。

这是我用来更新我的表格的代码:

      var rec = (from s in geton.table_1
      where s.on_id == geton.table_1.FirstOrDefault().on_id
      select s).FirstOrDefault();
      rec.export = 1;
      rec.on_date = geton.table_1.FirstOrDefault().on_date;
      geton.SaveChanges();

2 个答案:

答案 0 :(得分:3)

可以通过调用DbSet上的Add方法将新实体添加到上下文中。这会将实体置于已添加状态,这意味着它将在下次调用SaveChanges时插入到数据库中。

例如:

using (var context = new YourContext())
{
    var record = new TypeName { PropertyName = "Value" };
    context.EntityName.Add(record );
    context.SaveChanges();
}

了解更多信息:

http://msdn.microsoft.com/en-us/library/bb336792.aspx

http://msdn.microsoft.com/en-us/data/jj592676.aspx

http://www.entityframeworktutorial.net/significance-of-savechanges.aspx

答案 1 :(得分:0)

  

嗨,我知道如何编写代码来更新表。但是当我把断点并且来到savechanges方法时,我得到属性导出是对象密钥信息的一部分,并且无法修改错误。

这听起来更像是一个Key错误。你确定你在那张桌子上放了一把主键吗? 如果没有,那么EF只使用整个表作为密钥