Linq的OnValidate事件不会被解雇

时间:2009-04-03 17:58:05

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

我在事件OnValidate中验证linq设计器中的表的数据。

当我插入记录时会触发此事件,但在更新记录时不会触发此事件。

我有这段代码:

public bool Save(int id, string marca, string modelo, string año, string motor,
    bool disponible, RuleList issues)
{
    Usado u;
    if (id == 0)
    {
        u = new Usado();
        u.IdUsado = GetNextIdUsado();
        u.FechaCreacion = DateTime.Now;
    }
    else
    {
        u = GetUsadoById(id);
    }
    u.Marca = marca;
    u.Modelo = modelo;
    u.Año = año;
    u.Motor = motor;
    u.Disponible = disponible;
    if (id == 0)
    {
        DataBase.Usados.InsertOnSubmit(u);
    }
    return Execute(issues, DataBaseOperation.Save);
}

当id等于零时,我进行插入,否则我会进行更新。

为什么会发生这种情况?提前感谢您的任何线索。

1 个答案:

答案 0 :(得分:0)

您的更新是否会导致更改的对象,或者您是否分配了与原始值相同的所有值?您可能必须确保某些值不同,以便LINQ对其执行任何操作。使用GetChangeset()检查更改.Updates.Count。 (你的SubmitChanges在哪里?)