日期:2014-05-20  浏览次数:20841 次

如何实现linq to entity 一对多插入
老师表

学生表


一个老师对应多个学生 要求把 这个老师的信息和多个学生的信息一起保存到 数据库里
请问怎么实现  


用sql 的实现方法是 先插入老师信息 返回id 在根据返回的id 添加学生记录信息

------解决方案--------------------
思路和SQL是一样的,假设你数据库表的主键是设置成自增的:
var teacher=new Teacher{Name="Tim"};
db.Teacher.AddObject(teacher);
db.SaveChanges();
if(teacher.Id>0)
{
//添加学生信息
}
------解决方案--------------------
1楼的前提是:你在数据库中设置了主外键关系
然后再利用EntitySet来实现对teacher的存储
------解决方案--------------------
C# code

var teacher = db.Teachers.Add(new Teacher { Name = "Scott", Birthday = DateTime.Now, Sex = true });

for (int i = 1; i <= 10; i++)
{
    var s = new Student { Name = "Echo·" + (char)(i + 64), Birthday = DateTime.Now, Sex = i % 2 == 1 };
    teacher.Students.Add(s);
}

db.SaveChanges();