我有一个WCF数据服务(5.5)位于一个EF (5.0)模型上,当我查询$metadata时会得到以下错误:
“发现了一个验证失败的IEdmModel实例。报告了以下错误: InvalidMultiplicityOfDependentEnd :依赖端'QuestionsetMember‘的多重性无效。由于依赖属性不代表依赖端键,因此依赖端的多重性必须是’*‘。”
QuestionsetMember有一个由2列组成的复合主键,其中每个列都连接到另一个表的主键上,也就是说,从两个表的主键的键的每一列中都存在一个外键。
我已经搜索过了,但是找不到任何关于"InvalidMultiplicityOfDependentEnd“的信息。此外,还尝试修改EDMX中的关系,但是更改End Multiplicity会导致错误,这将不允许模型编译。
有什么想法可以解决这个问题(希望不会改变我的模式)?
发布于 2013-12-06 17:19:37
这似乎是一个非常罕见的错误。我在其他任何地方都没有找到对这个错误的解释。因此,在检查了两个表中的每个约束和每个列之后,我确实找到了一个解决方案。令我非常惊讶的是,主键列的顺序似乎是相关的。
有关说明:我在中进行数据库设计,并使用实体框架设计器更新我的模型。
第一表:
CREATE TABLE Table1
(
Column1 int NOT NULL,
Column2 int NOT NULL,
PRIMARY KEY (Column1,Column2)
)第二表:
CREATE TABLE Table2
(
Column1 int NOT NULL,
Column2 int NOT NULL,
PRIMARY KEY (Column1,Column2)
FOREIGN KEY (Column1,Column2) REFERENCES Table1(Column1,Column2)
)这样就行了。但是,如果要按另一个顺序定义第二个表中的主键的列,则不起作用:
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类中的模型验证产生影响。谁知道..。
https://stackoverflow.com/questions/19404939
复制相似问题