RIA EntityQuery复制其中一个值匹配的行
本文关键字:一个 复制 EntityQuery RIA | 更新日期: 2023-09-27 18:07:36
在我的应用程序中,我执行了一个实体查询。如果我使用SQL分析器,捕获生成的SQL查询,并手动运行它,它会给出我期望的结果。例如
Val Date
68 2011-05-31 00:00:00.000
48 2011-05-30 00:00:00.000
92 2011-05-29 00:00:00.000
52 2011-05-28 00:00:00.000
32 2011-05-27 00:00:00.000
32 2011-05-26 00:00:00.000
52 2011-05-25 00:00:00.000
81 2011-05-24 00:00:00.000
如果我在代码中插入一个断点,看看LoadOperation。实体包含,我注意到,当一个条目的'Val'数字已经出现(即像上面的52),然后LoadOperation。实体集合使用来自前一个条目的数据(值为52),而不是实际日期。在上面的数据中,我的LoadOperation。实体看起来像(注意,日期现在是重复的,似乎是因为'Vals'以前发生过)
68 2011-05-31 00:00:00.000
48 2011-05-30 00:00:00.000
92 2011-05-29 00:00:00.000
52 2011-05-28 00:00:00.000
32 2011-05-27 00:00:00.000
32 2011-05-27 00:00:00.000
52 2011-05-28 00:00:00.000
81 2011-05-24 00:00:00.000
有人知道为什么会这样吗?
My EntityQuery看起来像
var appDataQuery = context.GetVwKeyDatasQuery().Where(d => d.KPIDate <= OverViewDate && d.GELID == GelID && d.ClockworkID == ClockWorkID).OrderByDescending(d => d.KPIDate);
生成正确的T-SQL,在SQL查询分析器中执行时返回正确的值。
剩下的代码是
LoadOperation lo = context.Load<vwKeyData>(appDataQuery);
lo.Completed += new EventHandler(LoadOperation_Completed);
eventandler是
public void LoadOperation_Completed(object sender, EventArgs e)
{
LoadOperation<vwKeyData> histResults = sender as LoadOperation<vwKeyData>;
int _count = 0;
foreach (vwKeyData v in histResults.Entities)
{.......
至此,histResults。实体已经不正确。任何帮助将是感激的,因为这是搞砸了一些图表的东西,我正在工作。
感谢您需要设置以下内容。
context.vwKeyData.MergeOption = MergeOption.OverwriteChanges;
OverwriteChanges
将确保始终从数据源加载数据。
如上所述。需要唯一标识一行的每一列都应设置为模型中的实体键。
(右键单击模型设计器中的列并选择实体键)。