我正在尝试同时将数据插入主表和从属表。两个表之间确实存在数据库关系,表Employee有一个Identity列作为主键。
我正在尝试:
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();
但我得到的错误是:
无法将类型'Database.Skill'隐式转换为 'System.Data.Linq.EntitySet'
答案 0 :(得分:1)
看起来Database.Employee.Skills
是一个集合,而不是一个对象。即在模型中它看起来像:
public class Employee
{
...
public EntitySet<Skill> Skills { get; set; } // collection of skills
}
您的代码行
emp.Skills = skill;
正在尝试将集合实例化为单个实例,因此您会收到转换错误。
因此,添加技能的正确方法类似于
emp.Skills.Add(skill);
确切的实施取决于Database.Employee.Skills
是什么。