Asp.在单个事务中更新/插入2个表



我目前正在使用Asp。. Net动态数据,与Linq to Sql,创建一个简单的网站,只有CRUD操作与它相关联。

不幸的是,我根本无法更改数据库模式,并且遇到了一个问题,我无法优雅地解决这个问题。

数据库有一个中心用户表和一个与访问权限相关的附加表,其中每个用户有3行访问类型和位标志,表明他们是否拥有权限,例如UserId, access type, has access。

要求在用户详细信息&编辑屏幕以允许选择访问权限。

我能看到的最大的问题是如何实现插入/更新/删除操作,以确保在一个事务中修改两个表。

到目前为止,我能看到的唯一解决方案是劫持插入/更新/删除事件,并手动完成这一切,但如果是这种情况下,我可能会更好地写正常Asp的页面。. Net webforms,而不是尝试使用动态数据。

有谁知道我可以用什么方法来做吗?

这是一个不幸的数据库设计。您是对的,您必须拦截数据上下文的SubmitChanges()并在那里进行专门的更新。另一个选择是使用数据库触发器。

public override void SubmitChanges(System.Data.Linq.ConflictMode failureMode)
{
    ChangeSet changeset = GetChangeSet();
    foreach (var u in changeset.Deletes.OfType<Users>())
    {
        // do something to details
    }
}

相关内容

  • 没有找到相关文章

最新更新