LINQ-TO-SQL Refresh()在某些外部数据库更新(如ExecuteCommand())后不更新对象的关联
|
假设我有一个名为Department的实体,我是从MyDataContext检索的. Department有一个名为Employees的协会. 我想在一个部门添加一堆新员工.而不是使用LINQ,这将导致多个查询,我做一个批量插入: MyDataContext.ExcecuteCommand( "Insert INTO Employee (DeptID,etc…),(DeptID,etc…)" ); 现在我的Department对象对这些更改一无所知,特别是Employees属性,因为Department.Employees.Count()返回0 我已经尝试了以下两种方法来刷新以更新部门及其相关的员工: MyDataContext.Refresh(RefreshMode.OverwriteCurrentValues,Department); MyDataContext.Refresh(RefreshMode.OverwriteCurrentValues,Department.Employees); 但仍然是Department.Employees.Count()返回0 我知道数据实际上已正确添加,因为如果我创建一个新的DataContext并获取Department实体,则Department.Employees.Count()= 3 如何在不使用新DataContext的情况下更新MyDataContext或现有的Department实体? (我在整个请求中使用一个DataContext,并使用它执行几个不同的数据操作,因此很难尝试引入另一个DataContext) 解决方法不幸的是,根据 this post,Refresh()不会重新加载关联.建议的解决方法是:Department.Employees.Clear(); Department.Employees.AddRange(MyContext.Employees.Where(x=>x.DeptID=Department.DeptID)) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 升级SQL Server 2014的四个要点要注意
- Windows下写一个文件备份脚本(专用备份的)
- sql – Django嵌套事务 – “with transaction.atomic()”
- sql – “HAVING … GROUP BY”和“GROUP BY … HAVING”之
- sql – oracle中Like vs Contains()之间的搜索条件差异
- sql-server – 从非sysadmin域用户拥有的SQL Agent作业运行
- sql – 数据库仓库设计:事实表和维度表
- 如何设计高效合理的MySQL查询语句
- sql-server – 哪些版本的SQL Server支持LINQ to SQL?
- 安装完成后如何找回SQL Server实例安装时的序列号
