【问题标题】:insert,delete,update (relationship Many-to-Many )插入、删除、更新(关系多对多)
【发布时间】:2012-03-23 15:55:54
【问题描述】:

在http://msdn.microsoft.com/en-us/library/dd742359.aspx 中描述了关于多对多数据关系的关系。

现在如何在CourseInstructo؟上执行插入、删除、更新

对于一对一的关系我这样做:

var  context= new Modle2();
var course= new Course() {title="math",...};
context.Course.addObject(course);
context.SaveChanges()

【问题讨论】:

    标签: c# entity-framework entity-framework-4 ado.net ef-code-first


    【解决方案1】:

    您可以在任一端使用导航属性来操作多对多关系。 例如,

    using (var context = new Model2())
    {
        int courseID = 4022;
        var course = (from c in context.Courses
                     where c.CourseID == courseID
                     select c).First();
    
        int personID = 17;
        var instructor = (from p in context.Person
                      where p.PersonID == personID
                      select p).First();
    
        course.Person.Add(instructor);
        // alternatively, this will also do - instructor.Course.Add(course);
        context.SaveChanges();
    }
    

    对于删除,使用类似的逻辑 - 例如,

    using (var context = new Model2())
    {
        int courseID = 4022;
        var course = (from c in context.Courses
                     where c.CourseID == courseID
                     select c).First();
    
        int personID = 17;
        var instructor = (from p in context.Person
                      where p.PersonID == personID
                      select p).First();
    
        course.Person.Remove(instructor);
        context.SaveChanges();
    }
    

    更新对于多对多关系没有意义 - 它本质上是添加和删除组合。

    【讨论】:

    • @MaEb,您是否收到编译时错误或运行时异常。或者只是代码运行没有错误但没有任何反应。无论哪种情况,请尝试发布相关代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2020-11-11
    • 2012-05-25
    相关资源
    最近更新 更多