Linq To Sql - 更新没有持久化

时间:2009-04-01 18:12:34

标签: c# .net sql-server linq linq-to-sql

我真的很困惑为什么没有进行更新。这很简单:

    int goodID = 100;

    DataContext db = new DataContext();

    Schedule schedule = db.Schedules.Single(s => s.ID == goodID);

    // this wont persist - WHY NOT?!
    schedule.Email = txtEmail.Text;

    // this does persist
    schedule.NumberCourses = 5;

    db.SubmitChanges();

我无法理解为什么字段Email没有从文本框中获取值。我可以检查什么?

修改

我设置了断点并在分配后检查了值。它分配文本框值但仍然没有更新。

4 个答案:

答案 0 :(得分:2)

检查将向datacontext提交的更改。

在执行db.SubmitChanges()行之前添加断点并添加以下Watch:

db.GetChangeSet();

在Watch(或Quick Watch)窗口中,您将能够看到正在提交的更改。

答案 1 :(得分:1)

设置断点并检查该行之前和之后的schedule.Email值。另外,使用立即窗口检查txtEmail.Txt以查看它是否实际包含数据。

告诉我们您的发现。

答案 2 :(得分:1)

dbml是否与数据库表匹配?如果它与数据库不匹配,你可能会得到奇怪的东西。尝试重新导入它。

答案 3 :(得分:0)

我是个白痴。这是固定的。投票给大家。 而不是像普通人那样检查数据库,而是在刷新页面后我只是在webform上查看。我没有使用db中的值初始化文本框。所以更新正在进行中。看到?我告诉过你我是个白痴。