我们正在使用定义表和关系的Oracle 11g数据库模式(无法更改),如下所示:
CREATE TABLE MySchema.Parent (
Parent_ID NUMBER(15,0) NOT NULL, --Pk
... ) :
CREATE TABLE MySchema.Child (
Child_ID NUMBER NOT NULL,
Parent_ID NUMBER NOT NULL, --Fk
... ) :
ALTER TABLE MySchema.Child
ADD CONSTRAINT FamilyRelation FOREIGN KEY ( Parent_ID )
REFERENCES MICASE.PERSON ( Parent_ID );
注意:在Oracle数据库中,Parent表的Parent_ID定义为NUMBER(15,0)
,Child表的Parent_ID定义为NUMBER
。
问题:当表格添加到.Net Entity Framework模型时,ID会被映射到" Int64
和Decimal
分别与EF模型不匹配,后者报告以下内容:
错误112:引用约束的从属角色中的所有属性的类型必须与主体角色中的相应属性类型相同。属性类型' Parent_ID'在实体' MySchema.Child'与财产类型不匹配' Parent_ID'实体' MySchema.Parent'在参考约束' FamilyRelation'。
请就此问题提供解决方案或解决方法。
由于
注意: 我们的团队没有"拥有"或者有任何选择来更改Oracle数据模型 我知道还有一些其他类似的SO问题,但它们大多数都是较老的而且没有答案。
答案 0 :(得分:0)
您可以更改CSDL架构以匹配所需的数据类型。尝试将“十进制”值更改为“Int64”。希望它有效:)