我一直在与实体框架+自跟踪实体,并与一个问题就出来了:我如何知道自我跟踪实体的更改时间?
有什么方法来确定当一个实体已经改变?
例如:如果你有一个实体用户有两个领域:
<user>.ChangeTracker.State != ObjectState.Unchanged;
我的问题是,当用户:名和密码,你可以,如果一个用户实例已改变使知道有一个人,并且该人有一个字段的电子邮件。我希望如果电子邮件字段发生更改,则相应的用户也会更改。
我一直在尝试的方法,如:<user>.StartTrackingAll();
但这不适用于导航属性(或者我可能做错了什么)。有关这方面的一些帮助可以在here找到。
请记住,自追踪实体是通过T4模板自动生成的,因此不能修改这些类别。
这是真的,但在部分类,你不能添加的,当任何aditional的行为财产变化。我认为这应该很简单,改变模板来实现这个太激烈了(不是吗?)。正如@LadislavMrnka所说的那样,改变STE行为可能会使它们无用。 – Ariel
@Ariel。你读过我答案的第一部分了吗?这是我使用它的方式。有一个所谓的WalkEntityGraphHandler,它接受一个(匿名)委托来检查一个实体是否有Changetracker.State,然后是Unchanged(如此修改,添加,删除)。它是递归的,并告诉你对象图中的任何实体(如你想要的那样)已被更改。 –
谢谢,像这样的工作对我来说! – Ariel