【问题标题】:Updating a column using LINQ使用 LINQ 更新列
【发布时间】:2012-04-30 15:12:56
【问题描述】:

我的表有两个 ID 字段(我没有放 2 个 ID,所以不要问我为什么)。一个是主键,另一个是可以为空的重复字段,它将包含主键本身的值。

public static void UpdateDuplicate_ID(Company updatingCompany)
       {
           Company tempCompany;

           using (var context = new TestLiveDataContext())
           {
               tempCompany = (from company in context.Companies
                             where company.Id == updatingCompany.Id
                             select company).FirstOrDefault();

               tempCompany.DuplicateId = updatingCompany.DuplicateId;

               context.SubmitChanges();
           }
       }

上面的代码似乎不起作用。我无法用我的主键值更新重复的 id。谁能告诉我这里是否遗漏了什么?

【问题讨论】:

  • 你怎么知道它不起作用?你检查得怎么样了?
  • 看不到数据库中更新的id...
  • 您是否在分配上设置了断点,以检查您实际上是否为其分配了正确的值?出于兴趣,该方法的意义何在?如果 duplicateId 应始终与 Id 相同,则有更好的方法来执行此操作。
  • 另外,我们有没有机会看到你调用这个方法的代码?
  • 你传入的id?在这种情况下,为什么您的方法需要一个 Company 对象?

标签: c# asp.net .net linq


【解决方案1】:

据我所知,updatingCompanytempCompany 似乎是同一条记录。

如果是这种情况,如果您稍后更改传入的值并再次保存,您可能会覆盖此方法之外的机会。

问个问题,为什么不直接更改updatingCompany 中的值,然后根据自己的上下文提交更改,而不是启动一个新的?

除非我误解了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多