1

我目前正在尝试找到一种更好的方法来自动捕获执行插入或更新时所做的更改。我们需要跟踪记录更改的最后日期时间以及执行更新/插入的用户的用户 ID。

在 linq to sql 中是否有一种优雅的方法可以做到这一点?目前,我们为所有需要调用的(部分)类添加了 Save 方法,但这会导致问题,因为并非所有开发人员都记得使用 Save 方法并且仍在使用上下文来存储数据访问操作。

此外,如果我们能提供帮助,我们希望将此逻辑排除在数据库之外。

4

1 回答 1

0

不要在部分类上创建保存方法,而是实现 OnValidate 方法并在那里设置属性。

public partial class MyClass
{
    partial void OnValidate(System.Data.Linq.ChangeAction action)
    {
        if (action == System.Data.Linq.ChangeAction.Insert)
        {
            LastUpdated = DateTime.Now;
            ChangedBy = "Me!";
        }

    }
}

提交数据上下文时会自动为您调用此方法。

于 2013-08-10T16:04:06.523 回答