首页 新闻 会员 周边

entity framework 存在外键插入和修改的问题。

0
悬赏园豆:10 [已关闭问题]

我有个数据库,里面有两个表:Department(部门)和Employee(雇员表)Department的主键为Guid的DepartmentID,和Employee的外键DeparmentID关联,形成一对多关系,用ADO.Net Entity Framework 生成实体后。

我想增加一个雇员:可是生成的Employee实体中没有DepartmentID的属性,我怎么给它赋值呢?

而且也无法更新这个雇员的部门信息,还是因为这个雇员实体中没有DepartmentID的属性!

我找到了一个解决办法是:

Employee emp = new Employee();

emp.Name="xiaozhuang";

ObjectQuery<Department> dept= entities.CreateQuery<Department>("Select Value a from Department as a where a.DepartmentID = @ID", new ObjectParameter("ID", new Guid(DepartmentID)));
dept.FirstOrDefault().Employee.Add(emp);

entities.SaveChanges();

可是这样也太搞笑了吧?插入还要先查询出来啊?性能太差了!

还有一个办法是:

Employee emp = new Employee();

emp.Name="xiaozhuang";

emp.DepartmentReference.EntityKey = new System.Data.EntityKey("ForeseeFrameWorkDataBaseEntities.Department", "DepartmentID", new Guid(departmentid));

entities.AddToEmployee(emp);

entities.SaveChanges();

这样倒是不用查询了,可是这样的话DeparmentID属性的改变绕过了Tracking机制,因为它没有出发PropetyChanged事件,怎么办呢?

同样的道理,更改(Edit/Update)雇员部门的操作也无法完成!

永不言败的主页 永不言败 | 菜鸟二级 | 园豆:350
提问于:2008-10-28 15:00
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册