Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将外键添加到数据库后出现错误112和错误113_C#_Asp.net_Database_Entity Framework_Foreign Keys - Fatal编程技术网

C# 将外键添加到数据库后出现错误112和错误113

C# 将外键添加到数据库后出现错误112和错误113,c#,asp.net,database,entity-framework,foreign-keys,C#,Asp.net,Database,Entity Framework,Foreign Keys,这是我的表(整个过程的一部分,活动表仍然与其他表有其他关系): 在我的visual studio中添加外键并从数据库更新我的模型EDMX后,出现以下2个错误: 错误2错误112:从属角色中所有属性的类型 引用约束的类型必须与相应的 主体角色中的属性类型。财产类型 实体“istellarModel1.singalong”上的“ActivityID”与 中实体“istellarModel1.activity”的属性“ActivityID”的类型 参照约束 “FK_singalong_活动” 及 错

这是我的表(整个过程的一部分,活动表仍然与其他表有其他关系):

在我的visual studio中添加外键并从数据库更新我的模型EDMX后,出现以下2个错误:

错误2错误112:从属角色中所有属性的类型 引用约束的类型必须与相应的 主体角色中的属性类型。财产类型 实体“istellarModel1.singalong”上的“ActivityID”与 中实体“istellarModel1.activity”的属性“ActivityID”的类型 参照约束 “FK_singalong_活动”

错误1错误113:中的角色“活动”中的多重性无效 关系“FK_singalong_活动”。因为所有的属性 从属角色可为空,且为主体角色的多重性 必须是“0..1”

我在singalong中检查了我的ActivityID,它的类型与activity表的activity ID相同,我不明白错误113的实际含义,我是数据库新手,起初我有许多表没有链接,所以我在一段时间后将它们链接起来,并在visual studio中更新了我的模型(EDMX)(使用实体框架),但它给了我错误

有什么指导吗


113
错误听起来像是
singalong
中的活动ID可以为空

如果依赖角色可为空,则多对一无效

这似乎也暗示了
112
的原因-它很可能是在抱怨,因为它认为
notnull
也是类型的一部分,所以这两列是不同的

快速修复方法可能是确保将
singalong.ActivityID
标记为
notnull
,但如果您希望singalong记录没有相应的活动,这将有问题


我知道应该如何修复它,至少在一开始是这样,但如果DBA知识更丰富,可能会不赞成这样做:我只需添加一个虚拟活动(例如,活动id=0),用于
singalong
表中通常为NULL的情况。我不是建议你这么做,但我想作为一个临时解决办法来研究这个可能性,因为我更像是一个实用主义者而不是教条主义者:-)

我知道这是一个老问题,但遇到了同样的问题,这里是解决办法

如果打开.edmx文件(使用实体框架),您将看到不同的表。如果单击链接表的行:

它将显示属性。选择多重性并设置为0..1 您的外键需要设置为可空


singalong中的ActivityID已标记为非空,是否存在导致此问题的其他问题,错误113是关于主体角色和0..1关系。。让我更加困惑。@user2376998,不,不是没有看到更详细的实际表定义。但您可能想查看您的评论。“因为从属角色中的所有属性都可以为空”这句话似乎不同意。不是说你错了,只是看起来有点不协调。我已经更新了我的表格详细信息的屏幕截图,你还需要更多的详细信息吗?可能是EDMX的问题吗?@user2376998:还有更多的详细信息吗?不。看起来你确实是对的,这意味着这超出了我的专业范围,你必须等待其他人。我将把答案留在这里以供参考,但我会将其标记为CW,因为它不太可能是最终的答案。