LINQ to SQL:插入主要和外部 table

LINQ to SQL: Insert into Primary and Foreign table

我正在尝试将数据同时插入主 table 和从属 table。两个 table 之间确实存在数据库关系,并且 table Employee 有一个标识列作为主键。

我正在尝试:

        Database.Employee emp = new Database.Employee()
        {
            x = DateTime.Now,
            y = "xxx"
        };
        Database.Skill skill = new Database.Skill()
        {
            Skill = "Reading"
        };
        emp.Skills = skill;  //Error on this line
        dc.Employees.InsertOnSubmit(emp);
        dc.SubmitChanges();

但我得到的错误是:

Cannot implicitly convert type 'Database.Skill' to 'System.Data.Linq.EntitySet'

看起来Database.Employee.Skills是一个集合,而不是一个单独的对象。 IE。在模型中它看起来像:

public class Employee
{
     ...
     public EntitySet<Skill> Skills { get; set; } // collection of skills
}

你的代码行

emp.Skills = skill;

正在尝试将集合实例化为单个实例,因此您遇到了转换错误。

因此,添加技能的正确方法应该是

emp.Skills.Add(skill);

具体实施取决于 Database.Employee.Skills 是什么。