【发布时间】:2011-11-17 16:46:26
【问题描述】:
我正在使用 EF 4 STE 对 Attachment 对象进行建模。 附件 包含名称、描述、日期和最重要的数据 (byte[])。为了优化加载,我不想在绝对必要之前检索 Data 属性,即当用户从客户端单击 Download 时。
为了遵循这种方法,我使用了here 中描述的表格拆分技术。我将 Attachment 表拆分为 Attachment(名称、描述、日期)和 AttachmentData(数据)。在我的 EF 模型中,这是一对一的关系。一切正常,直到我尝试删除没有 AttachmentData 的 Attachment(即attachment.AttachmentData == null)。我得到以下异常:
遇到无效数据。缺少必需的关系。检查 StateEntries 以确定违反约束的来源。
我看到了 similar post,但我似乎无法使其与 STE 和 ApplyChanges 扩展方法一起使用。
现在我的数据访问代码很简单:我调用上下文的ApplyChanges(),然后是SaveChanges()。
我尝试了一个简单的删除 SQL 函数并将其映射到两个实体,并且确实有效;但是它破坏了插入物。我似乎无法将所有属性的插入函数映射到两个实体。
我可以尝试其他一些选择吗? Attachment 和 AttachmentData 之间的关系可以是可选的吗?当我将其设为 1 到 0+ 时,我收到一个映射错误,指出 Their primary keys may collide。
欢迎任何建议。
谢谢!
【问题讨论】:
标签: c# sql entity-framework entity-framework-4 self-tracking-entities