我正在尝试使用本地 DBSet 运行查询,但我提出的两个解决方案存在问题。
解决方案 1:这将运行查询并将我的查询结果绑定到我的结果控件,并且可以编辑数据并将其保存到数据库中。但是,如果我尝试在同一个表上运行另一个查询(如果我切换表一切都很好),结果项不会更新(它会添加任何新结果,但任何不应再存在的旧结果都保留在那里)
//This part gets a DBSet from the context with the passed in table
Type t = context.GetType();
dynamic myDBSet= t.InvokeMember(table,
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.GetProperty, null, context, new object[0]);
//This is the query I want to run. I am then loading it into the localDBSet
((IQueryable)myDBSet).AsQueryable().Where(condition).Load();
results.ItemsSource = myDBSet.Local;
解决方案 2:这将运行查询并正确绑定数据。此外,所有新查询的数据都会更新,但数据网格中的数据不再可编辑
//This part gets a DBSet from the context with the passed in table
Type t = context.GetType();
dynamic myDBSet= t.InvokeMember(table,
BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.GetProperty, null, context, new object[0]);
//This is the query I want to run. I am then loading it into the localDBSet
((IQueryable)myDBSet).AsQueryable().Where(condition).Load();
DbSet copiedDBSet= myDBSet;
results.ItemsSource = copiedDBSet.Local.AsQueryable().Where(condition);
有没有人有一个解决方案可以让我运行多个查询并仍然编辑数据?