实体框架将多个表映射到一个实体。并发检查
我将一个实体映射到两个表。该表的第一个有时间戳字段。 我想要什么 - 如果我修改第一个表中的字段,它应该检查第一个表是否与时间戳列并发。第二个表不应该更新。如果我修改第二个表,它应该只更新第二个表。第一个表必须保持不变。
如果我为架构中的时间戳字段设置“Concurrecny=None”,则这是有效的。 如果我为时间戳字段设置“Concurrecny=Fixed”并更改第二个表中的属性,它将使用当前值更新第一个表。
如何仅对这两个表之一进行并发检查?
I got one entity mapped to two tables. First of this tables has timestamp field.
What I want - if I modify field from first table it should check first table for concurrecny with timestamp column. The second table should'n updating. If I modify second table it should just update the second table. First table must be unchanged.
This is work if I set "Concurrecny=None" for the timestamp field in schema.
If I set "Concurrecny=Fixed" for the timestamp field and change properties from the second table it update the first table with current values.
How to make Concurrency check only for one of this two tables?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那是不可能的。一旦将两个表映射到单个实体,它们就成为实体框架的一个表,并且时间戳在它们之间共享,因此如果您对第二个 EF 进行任何更改,则始终会修改第一个 EF 中的时间戳。如果将
Concurrency
设置为None
,您将关闭 EF 中的并发功能以及时间戳字段的主要用途。That is not possible. Once you map two tables to single entity they becomes one for entity framework and the time stamp is shared among them so if you do any changes to the second EF will always modify timestamp in the first. If you set
Concurrency
toNone
you are turning off the concurrency feature in EF and the main purpose of timestamp field.