我正在考虑在EF中使用TPT继承。我有以下表格。
StockLocation StockLocationType
StockLocationType包含以下类型:
批量可拾取安全
我正在考虑使用StockLocation作为基表,并创建一个批量的、可挑选的和安全的表。在secure表中,将有一个名为locked的列,该列将使位置锁定,因此没有人可以从中挑选。
要将位置从pickable切换到secure,我是否必须从可pickable表中删除数据并将其插入secure表,并在位置锁定时将锁定列设置为true?然后在位置解锁后将其从安全表移回可拾取表?
或者我在每个表中都有重复的记录?
看起来好像我一直在两个表之间传递数据。
任何建议/建议都是很棒的。
发布于 2012-08-23 20:20:48
要将位置从pickable切换到secure,当位置被锁定时,我是否必须从可pickable表中移除数据并将其插入secure表中,并将锁定列设置为true?
这不是继承的用例。一种类型的实体是永久性的。您不能在EF中更改实体类型(您可以通过直接在数据库中执行SQL来更改,但这是对EF的攻击,可能会产生意想不到的后果)。
或者我在每个表中都有重复的记录?
这也是很难实现的,因为对于派生类型,您只能在单个表中有记录,否则EF将无法了解它是什么类型并引发错误。
看起来好像我在两个表之间不断地传递数据。
如果你的数据库是这样设计的,你将不得不传递数据,并且你将不得不在EF中使用正常的导航属性。
https://stackoverflow.com/questions/12091128
复制相似问题