【问题标题】:How do I save my object back into my database in LINQ to SQL?如何在 LINQ to SQL 中将对象保存回我的数据库中?
【发布时间】:2011-06-17 18:06:10
【问题描述】:

在 ASP.NET MVC 网站中使用LINQ to SQL,我可以显示我的数据库表中的对象(记录)。

现在我想创建一个新对象并将其保存回数据库。

在我的控制器中,我这样做:

    var dataContext = new MessageDataContext();
    Message message = new Message();
    message.Action = "save";
    message.Body = "record";
    message.Parameter = "234";

现在我想用这样的方式保存它:

message.Save();

或许:

dataContext.SubmitChanges(message);

但这些都不起作用。

这里的语法是什么:

  • 添加新对象并将其保存到数据库中?
  • 对现有对象进行更改并将其保存到数据库中?

【问题讨论】:

    标签: asp.net-mvc linq-to-sql


    【解决方案1】:

    您正在寻找的是:

    dataContext.Messages.InsertOnSubmit(message);
    dataContext.SubmitChanges();
    

    假设您有一个 Messages 表映射到您的 LINQ to SQL DBML。

    【讨论】:

    • 我可以帮我解决我的问题吗? linked here
    • 同样的动作不应该由 dataContext.Messages.Attach(message) 完成???
    • @balanza 现在很可能,但早在 2009 年可能不会......我现在使用 Dapper 而不是 LINQ(由 Stack 团队开发):code.google.com/p/dapper-dot-net 所以我从来没有跟上 LINQ发展。
    【解决方案2】:

    要添加新对象,只需:

    dbContext.Messages.InsertOnSubmit(message);
    dbContext.SubmitChanges();
    

    如果您对之前加载的实体进行任何更改,只需执行以下操作:

    dbContext.SubmitChanges();
    

    如果您不想提交任何更改的实体,您需要这样做:

    dbContext.Refresh(RefreshMode.OverwriteCurrentValues, message);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 2010-11-20
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多