Linq到EF没有返回所有数据

时间:2015-11-26 16:26:39

标签: mysql entity-framework linq

我对EF进行了以下查询,其中使用了mysql:

var query = from r in context.myContext
            where r.clmn1.CompareTo("2015-11-19 00:00:00") > 0)
            orderby r.someColumn
            select r;
return query;

返回的行数与预期一致。但是,属性r.clmn2的某些值会在查询结果中重复出现。例如,我找不到clmn2 == 220011,因为它被值220033“覆盖”(值220033是正确的和预期的但不应“覆盖”其他值)。奇怪的是,当我将这个条件添加到查询中时,我在结果中得到它(当然只有这个值),这意味着第一个条件对clmn2也有效:

var query = from r in context.myContext
            where r.clmn1.CompareTo("2015-11-19 00:00:00") > 0) && r.clmn2.Equals("220011")
            orderby r.someColumn
            select r;
return query;

相同的查询(第一个)在DB级工作并返回所有值(不会被覆盖)

SELECT * FROM myContext.myTable
WHERE r.clmn1 > ("2015-11-19 00:00:00")
ORDER BY r.someColumn

这应该是EF的问题。我希望有人可以帮助我!

先谢谢。

1 个答案:

答案 0 :(得分:0)

我在生成的实体类中使用[key]属性为列/属性clmn2添加了前缀,以便它现在是多个键的一部分,即与其他列/属性一起使用。它工作,我从DB获得所有值。也许cus这个属性来自DB-view,Visual Studio无法像其他属性那样将它识别为主键。