Linq to sql Doddle审计的外键问题

Linq to sql Doddle审计的外键问题,linq-to-sql,Linq To Sql,我刚刚开始使用Matt Hidinger的漂亮外观,它提供了DataContext定位的对LINQ到SQL实体的任何更改的自动审计。它适用于单个实体,但也具有关联功能,例如,在订单和订单项目相关的地方,订单项目的更改反映在订单更改下 他给出了几个关于如何审计相关表的示例,但没有一个适合我。我在论坛上问过,但我希望这里的人可能使用过这个项目,并给我一些建议。如果我尝试审核“亲子”关系,例如 Orders.Audit().AuditAssociation(o => o.OrderItems);

我刚刚开始使用Matt Hidinger的漂亮外观,它提供了DataContext定位的对LINQ到SQL实体的任何更改的自动审计。它适用于单个实体,但也具有关联功能,例如,在订单和订单项目相关的地方,订单项目的更改反映在订单更改下

他给出了几个关于如何审计相关表的示例,但没有一个适合我。我在论坛上问过,但我希望这里的人可能使用过这个项目,并给我一些建议。如果我尝试审核“亲子”关系,例如

Orders.Audit().AuditAssociation(o => o.OrderItems);
在任何表上,我都会得到错误:

“System.Int32”类型的表达式不能用于返回类型“System.Nullable`1[System.Int32]”


我不熟悉LINQ到SQL,怀疑那里可能出了什么问题。我只是在SSMS中创建并关联表,然后将它们拖到DBML设计器上。

这是预编译的“官方”版本的问题,可以通过下载并自行构建源代码来解决。为了与最新的源代码版本兼容,需要对代码进行一些小的更改(主要是字段重命名)。

注意:在源文件“AuditableDataContext.cs”中,将第85行从“new MemberAudit(mmi.Member,mmi.CurrentValue,mmi.OriginalValue));”至“新成员审核(mmi.Member,mmi.OriginalValue,mmi.CurrentValue));”对写入审计表的AuditableDataContext类部分所做的更改比我预期的要复杂一些,但在其他方面一切都很好,谢谢。我只是很惊讶Matt甚至在最近(7月19日)的提交中都没有修复OriginalValue和CurrentValue的转换。