【问题标题】:Update SubmitChanges() - does not update更新 SubmitChanges() - 不更新
【发布时间】:2009-05-23 09:06:14
【问题描述】:

使用此代码,我的数据库没有任何变化。 运行上述代码时,不再创建新条目,也不再更新条目。

public void UpdateCallback(callback cb_)
    {
        callback call = context.callbacks.Single(c => c.callbackID == cb_.callbackID);

            //call.callbackID = cb_.callbackID;
            call.status = cb_.status;
            call.contactName = cb_.contactName;
            call.company = cb_.company;
            call.phone = cb_.phone;
            call.calledDate = cb_.calledDate;
            call.callback1 = cb_.callback1;
            call.notes = cb_.notes;

        try
        {
            context.SubmitChanges();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
    }

【问题讨论】:

    标签: linq linq-to-sql


    【解决方案1】:

    post 与您的相似。

    在他的例子中,更新不起作用,因为表没有主键。

    您是否验证过 CallbackId 被定义为数据库中的 PK?

    【讨论】:

    • 我也遇到过这个问题,原因也是如此。
    • 为了清楚起见,这里重要的不是数据库中是否存在主键,而是在 Linq-to-SQL 设计器中是否将一个或多个唯一标识记录的列标记为主键。换句话说,即使db中没有PK,将逻辑上可以充当PK的列标记为主键就足够了。
    • .. 你可以在设计器中做到这一点吗?啊!
    【解决方案2】:

    没有什么能立即向我跳出来。我发现使用 DataContext 的 Log 属性来查看正在生成的 SQL 很有用。

    http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.log.aspx

    然后,您可以在调试时使用类似下面的代码将 SQL 输出到 Visual Studio 调试窗口。

    /// <summary>
    /// Implementation of a <see cref="TextWriter"/> that outputs to the debug window
    /// </summary>
    public class DebugTextWriter : TextWriter
    {
        public override void Write(char[] buffer, int index, int count)
        {
            System.Diagnostics.Debug.Write(new string(buffer, index, count));
        }
    
        public override void Write(string value)
        {
            System.Diagnostics.Debug.Write(value);
        }
    
        public override Encoding Encoding
        {
            get { return System.Text.Encoding.Default; }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 2010-09-28
      • 2011-05-14
      • 2023-03-14
      相关资源
      最近更新 更多