Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何刷新LINQ到实体查询_C#_Linq To Entities - Fatal编程技术网

C# 如何刷新LINQ到实体查询

C# 如何刷新LINQ到实体查询,c#,linq-to-entities,C#,Linq To Entities,我有以下LINQ to实体代码: var vans = from v in objDB.vans.Include("van_assignments.pickup_requests.to_location") .Include("van_assignments.pickup_requests.from_location") .Include("van_assignments.

我有以下LINQ to实体代码:

var vans = from v in objDB.vans.Include("van_assignments.pickup_requests.to_location")
                               .Include("van_assignments.pickup_requests.from_location")
                               .Include("van_assignments.pickup_requests.person")
                               .Include("school")
           select v;


gcVans.DataSource = vans;
现在,在另一种方法(即刷新按钮)中,我需要在对远程数据库进行更改时刷新该查询

我尝试再次调用上述代码,但它不会刷新数据。有人知道强制LINQ to实体从远程数据库刷新的最佳实践吗

编辑:稍加涉猎后,会导致车辆信息更新。但是,使用.include()函数加载的所有外键数据都不会更新。有人知道为什么吗

var vans = from v in objDB.vans.Include("van_assignments.pickup_requests.to_location")
                   .Include("van_assignments.pickup_requests.from_location")
                   .Include("van_assignments.pickup_requests.person")
                   .Include("school")
           select v;

objDB.Refresh(RefreshMode.StoreWins, vans);

gcVans.RefreshDataSource();

听起来你用错了

默认值
AppendOnly
,尝试保留客户端更改,刷新时不会覆盖。也许您想要
覆盖更改
?这样您就不需要调用
刷新

要设置此选项,请执行以下操作:

(vans as ObjectQuery).MergeOption = MergeOption.OverwriteChanges;

它不会用该代码刷新。此外,我还更新了一些新信息。你有什么想法吗?如果你删除“from v in”和“select v”部分,它会有什么不同吗?谢谢,你能提供一个我将如何使用合并选项的示例吗?我添加了一个示例。在枚举结果之前执行此操作。添加此操作将导致在我调用objDB.refresh(RefreshMode.StoreWins,vans)时从服务器刷新LINQ to实体?再次感谢您抽出时间!否,添加它将导致查询返回新对象,而不是将结果修复为内存中已有的值。