首页 新闻 搜索 专区 学院

EF新增实体数据AddObject报错问题

0
悬赏园豆:5 [已解决问题] 解决于 2013-01-25 13:44

有个问题请教一下各位大侠,我在用EF建立模型的时候,建立了两个表,Custom跟Order,

Cstom的字段有: CustomID,CustomName

Order的字段有 :  OrderID,CustomID

Custom跟Order的关联是一对多,建立关联的时候我没有创建外 键实体,然后从模型生成数据库,这个时候,数据库中的Order表多了一个外键列Custom_CustomID,我把这个外键列删掉,然后从数据库更新 实体,更新成功了,但是我在对Order新增数据的时候报错:
EFModelContainer.Order”中的实体参与“CustomOrder”关系。找到 0 个相关的“Custom”。应有 1 个“Custom

为什么会这样的?难道我在建立实体关联的时候,就是不适用外键实体,但是数据库中还是必须要存在这个外键实体列才行?如果真是这样的话,那岂不是每个关联表都会多出一个没有用的字段吗?这个字段仅仅只是为了在EF中维持实体关联的关系吗?

 

刚接触EF不就,对这个错误无从下手,期待各位大侠不吝赐教,祝好,谢谢!

ljcheibao的主页 ljcheibao | 初学一级 | 园豆:132
提问于:2013-01-09 13:55
< >
分享
最佳答案
0

你得看你的数据库设计中是否有主外键关联,如果有,那么你插入的时候就需要考虑主外键;如果没有,则不需考虑。这是有数据库来决定的。

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2013-01-09 14:05

就是刚从模型生成数据库的时候,我在建模实体关联的时候并没有生成实体,但是在生成数据库的时候还是给我生成了关联的外键列,我把这一列删除了,然后从新从数据库更新模型,这时候数据库是没有外键的啊,我都删除了,只是EF中有实体的关联

ljcheibao | 园豆:132 (初学一级) | 2013-01-09 14:21

就是刚从模型生成数据库的时候,我在建模实体关联的时候并没有生成实体,但是在生成数据库的时候还是给我生成了关联的外键列,我把这一列删除了,然后从新从数据库更新模型,这时候数据库是没有外键的啊,我都删除了,只是EF中有实体的关联

ljcheibao | 园豆:132 (初学一级) | 2013-01-09 14:22

@ljcheibao: 你数据库中的两个表之间有主外键关联么?

Launcher | 园豆:45045 (高人七级) | 2013-01-09 14:28

@Launcher: 没有主键关联

ljcheibao | 园豆:132 (初学一级) | 2013-01-09 16:35

@ljcheibao: 但是从你的错误来看,Order 和 Cstom 确实有外键关联关系,所以才会出现插入 Order 的时候要求你必须提供一个 Cstom 的Id.

Launcher | 园豆:45045 (高人七级) | 2013-01-09 17:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册