2 q6541oijhk q6541oijhk 于 2016.03.01 17:28 提问

Enity framework 向一个有外键的table插入数据 2C

Enity framework 怎么向一个有外键的table插入数据。
比如一个student表:
Id(主键)
Name
ClassId(外键,Class表的主键)

一个Class表:
Id(主键,student的外键)
Name

当我用ef(版本3.5)插入一条student记录时,例如 (1,小明,一班)注:“一班”这个数据存在于class表中。
这时ef会先去class表中插入“一班”这个数据,从而出现主键不能重复的异常,student也没法插入。如果Class表中没有“一班”这个数据
那么一切会正常执行。

插入函数,我用的是ef DBcontext派生类的AddToXXX()(XXX为表名)方法
之后调用savechanges保存 就会出现class表主键冲突的问题

请问这个问题怎么解决!

代码:

                                                            student.Classes = classes;
                           student.Colleges = college;
                           student.Degrees = degree;
                           student.GraduateYears = year;
                           student.Specials = special;
                                                         ae.AddToStudents(student);
            以上class college degree year special student 全部是model(根据数据库自己生成的)并且class college degree year special的主键全部是student的外键ae是DBcontext的对象

1个回答

caozhy
caozhy   Ds   Rxr 2016.03.01 21:05

贴出你的代码,你重复插入主键了。

你可以用导航属性,比如
db.ClassTable.Students.Add(new Student() { ... });
db.SaveChanges();

q6541oijhk
q6541oijhk 回复caozhy: classes是new出来的
2 年多之前 回复
q6541oijhk
q6541oijhk 回复caozhy: 并且我用的是3.5版本没有类似于db.ClassTable.Students.Add的这个add方法只有db下有add方法
2 年多之前 回复
q6541oijhk
q6541oijhk 回复caozhy: 我修改了题目你看下
2 年多之前 回复
caozhy
caozhy classes在哪里定义的
2 年多之前 回复
q6541oijhk
q6541oijhk student.Classes = classes; student.Colleges = college; student.Degrees = degree; student.GraduateYears = year; student.Specials = special;
2 年多之前 回复
q6541oijhk
q6541oijhk student.Classes = classes; student.Colleges = college; student.Degrees = degree; student.GraduateYears = year; student.Specials = special;
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数据库如何给含有外键的表中插入数据?
数据库如何给含有外键的表中插入数据? 数据库有三个表格: 表1 Table: orderdetail Columns: id int(11) AI PK orders_id int(11) items_id int(11) items_num int(11) 表2 Table: items Columns: id int(11) AI PK name varchar(32)
Django 模型中外键和多对多
模型Article, Category, Tag关系Category是Article的外键Tag是Article的many-to-many获取模型对象的外键和多对多值>>> from myApp.models import * >>> a = Article.objects.get(id=1) >>> a <Article: title1> >>> a.title u'title1' >>> a.t
MySQL的外键插入
为已经添加好的数据表添加外键:语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)//FK_ID是
添加外键的表如何插入数据
数据的关系比较多的是使用外键去关联的,那直接插入数据到添加了外键的表的时候,那就会出现一个问题找不到这个外键值而报错。 这里有两个解决办法: 先对外键指定的那张子关系表添加你需要的数据后,再对使用外键的表添加数据。(先主表插入数据,再从表插入数据集) 例如我有一张学生表t_student,然后我有一张宿舍表t_dormitory,然后t_dormitory里面有一个学生字段是外键,关联到学生表
Django rest framework 常用外键命令 (加入、删除、查看所有、查看除了自己以外的所有、摘除分离对象间外键关系)
modelclass MyUser(AbstractUser): team=models.ForeignKey('myteam.Team',related_name='users',null=True,on_delete=models.SET_NULL) #所属球队related_name表示其外键反向检索时用的字段名,默认为 小写的外键model名_set。 on_delete代表当us
SSH框架之Hibernate数据库外键如何插入值的问题
SSH框架之Hibernate数据库外键如何插入值的问题 一、目标: 现有表: 其中Tea_id属于外键,如何向含有外键的表中插入对应的数据。 二、pojos部分 Course_information .java package com.pojos; import java.util.Date; public class Course_informatio
求大神解答!SSH框架如何在一张带有外键的表中插入数据。
我现在有两张表商品类别表goods_cate和商品信息表goods_information
django orm 外键操作-练习示例
django orm 外键操作 练习示例
已解决在向有外键表插入数据提示“foreign key constraint fails”
今天在做作业的时候,在建立了几个主表,一个有外键的表USE SPJ; CREATE TABLE S (SNO CHAR(4) NOT NULL, SNAME CHAR(20) NOT NULL, STATUS CHAR(10), CITY CHAR(2
truncate有外键约束的表,报ORA-02266处理。
问题描述:当父表有子表的外键约束时,无法直接truncate父表。报ORA-02266: unique/primary keys in table referenced by enabled foreign keys。 这里使用另一种办法来解决这个问题:先把外键失效,truncate表之后再把外键生效。 SQL> truncate table machine_room; truncate t