0

我正在使用 Oracle 数据源,只读取数据,不写入,我无法更改数据库上的任何内容。

想象一下有 2 个表的场景,一个课程表和一个备忘录表。

Courses 表有 2 个指向备忘录 (MemoId) 表的链接。

所以...

课程表 CourseId Title SummaryNarrationMemoId PreCourseInformationMemo

MemoToString 表 MemoId MemoData(二进制)

因此,出于不同的原因,课程表两次加入到备忘录表中。

我查看了两次使用同一个表的 EF 继承路由,使用备忘录表作为基础,并创建 PreCourseMemo 和 SummaryNarrationMemo,但这会在构建时引发这些错误:

我更新了模型以将两个表添加到模型中。 EF 中的双表

错误 3005:从第 613 行开始映射片段时出现问题:必须为 Set MemoToStringTables 中的所有类型指定映射。在以下情况下,具有密钥 (PK) 的实体将不会往返:实体类型为 [MyModel.MemoToStringTable]

错误 3005:从第 613 行开始映射片段时出现问题:必须为 Set MemoToStringTables 中的所有类型指定映射。在以下情况下,具有密钥 (PK) 的实体将不会往返:实体类型为 [MyModel.PreCourseMemo]

错误 3005:从第 613 行开始映射片段时出现问题:必须为 Set MemoToStringTables 中的所有类型指定映射。在以下情况下,具有密钥 (PK) 的实体将不会往返:实体类型为 [MyModel.SummaryNarrationMemo]

我知道我可以为数据库上的每个视图创建一个视图,但感觉不对。:( 有什么想法吗?

4

1 回答 1

0

如果我正确理解您的问题,它将无法正常工作。您正在尝试将继承映射到备忘录表,但要做到这一点,备忘录表必须包含特殊的鉴别器列,它将告诉 EF 它是PreCourseMemoSummaryNarrationMemo。你不能仅仅通过与课程的关系来区分这些类型。

于 2012-04-24T10:30:00.407 回答