有个问题请教一下各位大侠,我在用EF建立模型的时候,建立了两个表,Custom跟Order,
Cstom的字段有: CustomID,CustomName
Order的字段有 : OrderID,CustomID
Custom跟Order的关联是一对多,建立关联的时候我没有创建外 键实体,然后从模型生成数据库,这个时候,数据库中的Order表多了一个外键列Custom_CustomID,我把这个外键列删掉,然后从数据库更新 实体,更新成功了,但是我在对Order新增数据的时候报错:
EFModelContainer.Order”中的实体参与“CustomOrder”关系。找到 0 个相关的“Custom”。应有 1 个“Custom
为什么会这样的?难道我在建立实体关联的时候,就是不适用外键实体,但是数据库中还是必须要存在这个外键实体列才行?如果真是这样的话,那岂不是每个关联表都会多出一个没有用的字段吗?这个字段仅仅只是为了在EF中维持实体关联的关系吗?
刚接触EF不就,对这个错误无从下手,期待各位大侠不吝赐教,祝好,谢谢!
你得看你的数据库设计中是否有主外键关联,如果有,那么你插入的时候就需要考虑主外键;如果没有,则不需考虑。这是有数据库来决定的。
就是刚从模型生成数据库的时候,我在建模实体关联的时候并没有生成实体,但是在生成数据库的时候还是给我生成了关联的外键列,我把这一列删除了,然后从新从数据库更新模型,这时候数据库是没有外键的啊,我都删除了,只是EF中有实体的关联
就是刚从模型生成数据库的时候,我在建模实体关联的时候并没有生成实体,但是在生成数据库的时候还是给我生成了关联的外键列,我把这一列删除了,然后从新从数据库更新模型,这时候数据库是没有外键的啊,我都删除了,只是EF中有实体的关联
@ljcheibao: 你数据库中的两个表之间有主外键关联么?
@Launcher: 没有主键关联
@ljcheibao: 但是从你的错误来看,Order 和 Cstom 确实有外键关联关系,所以才会出现插入 Order 的时候要求你必须提供一个 Cstom 的Id.