首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OData $metadata误差

OData $metadata误差
EN

Stack Overflow用户
提问于 2013-10-16 13:34:34
回答 1查看 485关注 0票数 0

我有一个WCF数据服务(5.5)位于一个EF (5.0)模型上,当我查询$metadata时会得到以下错误:

“发现了一个验证失败的IEdmModel实例。报告了以下错误: InvalidMultiplicityOfDependentEnd :依赖端'QuestionsetMember‘的多重性无效。由于依赖属性不代表依赖端键,因此依赖端的多重性必须是’*‘。”

QuestionsetMember有一个由2列组成的复合主键,其中每个列都连接到另一个表的主键上,也就是说,从两个表的主键的键的每一列中都存在一个外键。

我已经搜索过了,但是找不到任何关于"InvalidMultiplicityOfDependentEnd“的信息。此外,还尝试修改EDMX中的关系,但是更改End Multiplicity会导致错误,这将不允许模型编译。

有什么想法可以解决这个问题(希望不会改变我的模式)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-06 17:19:37

这似乎是一个非常罕见的错误。我在其他任何地方都没有找到对这个错误的解释。因此,在检查了两个表中的每个约束和每个列之后,我确实找到了一个解决方案。令我非常惊讶的是,主键列的顺序似乎是相关的。

有关说明:我在中进行数据库设计,并使用实体框架设计器更新我的模型。

第一表:

代码语言:javascript
复制
CREATE TABLE Table1
(
Column1 int NOT NULL,
Column2 int NOT NULL,
PRIMARY KEY (Column1,Column2)
)

第二表:

代码语言:javascript
复制
CREATE TABLE Table2
(
Column1 int NOT NULL,
Column2 int NOT NULL,
PRIMARY KEY (Column1,Column2)
FOREIGN KEY (Column1,Column2) REFERENCES Table1(Column1,Column2)
)

这样就行了。但是,如果要按另一个顺序定义第二个表中的主键的列,则不起作用:

代码语言:javascript
复制
CREATE TABLE Table2
(
-- Changed order in definition:
Column1 int NOT NULL,
Column2 int NOT NULL,
-- Changed order in PK group:
PRIMARY KEY (Column2,Column1)
-- Leave the FK definition untouched:
FOREIGN KEY (Column1,Column2) REFERENCES Table1(Column1,Column2)
)

我认为列定义的顺序对生成的模型有影响。这个顺序可能会对IEdmModel类中的模型验证产生影响。谁知道..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19404939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档