对象模型
所以我想到了这个简单,容易和“漂亮”的模型.看第一张照片. (你可以忽略PathEntry,它与我的情况无关.)
想法是MediaFeedItem拥有:
> ThumbnailFileEntries的集合(可通过ThumbnailFiles属性访问)
>最多1个原始FileEntry(MetadataFile属性)和
>最多1个MediaFileEntry(MediaFile属性)
现在还有更多:正如你所看到的,我从FileEntry继承了ThumbnailFileEntry和MediaFileEntry,让我们不要辩论! (就目前而言),它是设计的最终故事方面之一,两种实体类型将在以后继续增长.
对于从文件实体到MediaFeedItem的关系引起的多态关联,这已经给我带来了一些重要的问题.
您要注意的第一件事是我已将导出属性从派生文件实体(ThumbnailFileEntry和MediaFileEntry)中删除到主要实体MediaFeedItem.
我这样做是因为他们已经继承了基类FileEntry中定义的属性.如您所见,我不删除这些关联末尾的角色.
关系模型
我将使用极其概念上优越的TPT策略来生成我的对象模型并将其映射到RDB世界(与TPH / TPC相比).
我正在使用EF5-rc,EDMX模型设计师来设计我的模型,使用EF5 DbContext Generator来生成DbContext和POCO,因为我想使用DbContext API.
问题
加载新的MediaFeedItem并保存它时,我收到以下错误:
system.invalidOperationException:违反了Multicplicity约束. “MediaFeedModel.MediaFeedItem_MetadataFile”关系的“MetadataFile”角色具有多重性1或0..1.
我究竟做错了什么?
解决方法
我认为你想要做的是以下之一:
>将MediaFeedItem_FileEntry的多重性更改为0..1 – 0..1,以便在任何一端都不需要它
>创建一个新的扩展类型来处理MetadataFile类型,并删除基类型和MediaFeedItem之间的直接引用
我个人认为第二种方法是为您的问题创建一个更实际的类型,因为它为您的MetadataFile创建了一个实际的类型
似乎正在发生的是您正在尝试创建扩展类型,但基本类型实际上不是元数据文件.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。