我有一个名为 Image 的实体类型,它继承自 Publication(还有 5 种其他类型的 Publication,都共享 10 个公共属性)。
不幸的是,我的数据库中的 Image 表包含 4 个二进制列,其中包含 4 个不同分辨率的图像版本的数据,因此 EF Image 类型有 4 个属性:BinOriginal、BinHiRes、BinLowRes、BinThumbnail,其中包含大量数据。
这会影响性能。例如,当我只是生成一系列图像链接时,我不想获取所有二进制数据。
所以我尝试了表拆分,将 4 个二进制字段放入一个新的 ImageFile 实体中:http: //blogs.msdn.com/b/adonet/archive/2008/12/05/table-splitting-mapping-多个实体类型到同一个表.aspx
我确保了正确的表映射,添加了 1-1 关联并包含了引用约束,但是我收到了这个错误:
Error 3033: Problem in mapping fragments starting at line 2731:EntitySets
'ImageFiles' and 'Publications' are both mapped to table 'Images'. Their primary
keys may collide.
...似乎存在一个问题,即被拆分的表涉及继承关系。
我尝试从 Publication 继承新的 ImageFile EF 类型,但随后出现错误:
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
问题有什么办法可以解决这个问题,或者我需要 Image EF 类型从 Publication 继承这一事实是否会阻止将其他字段拆分为新类型?