Linq To使用视图的实体返回重复的值

时间:2011-06-30 16:34:56

标签: view linq-to-entities

我使用Linq而不是SQL Server数据库中的View。具体的句子如下:

var valoresFiltrados = Context.VDoNotUse_v2.Select(doNotUse => doNotUse).Where(doNotUse => doNotUse.PlatformValue.Equals(platform) && doNotUse.Bank.Equals(bank) && doNotUse.LanguageValue.Equals("CZE_CZ")).OrderBy(doNotUse => doNotUse.ID);

其中VDoNotUse是View的实体。这个sentece返回重复的值(第一个ID例如是12170,12171,12170,12171,12204 ......)并且这些值没有排序,如示例中所示。但是,如果我使用带有以下句子的SqlDataAdapter(我确信它等同于Linq),它将起作用并返回正确的值:

"SELECT * FROM VDoNotUse_v2 WHERE PlatformValue = '" + platform + "' AND Bank = '" + bank + "' AND LanguageValue = 'CZE_CZ' order by id asc"

当然,他们都使用相同的连接和数据库。

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

您需要确保已将实体数据模型中的实体密钥正确设置为您的视图。我发现默认的实体键通常是错误的。