实体SQL - 奇怪

时间:2012-12-03 16:42:13

标签: entity-framework entity-framework-4 entity-framework-4.1

我使用.CreateQuery(sqlStatement,parameterValues)从我的对象上下文中获取数据。请注意,我将作为字符串常量使用的Entity SQL传递给CreateQuery方法,而不是源代码中的已编译LINQ查询。

这完美无缺。但是有一些重复的记录...

ctx.CreateQuery<DbDataRecord>(@"SELECT  record.home_city, record.home_stabb 
FROM Employees AS record  
ORDER BY record.home_city SKIP 0 LIMIT 15",prms);

所以我认为这会删除重复项:

ctx.CreateQuery<DbDataRecord>(@"SELECT DISTINCT record.home_city, record.home_stabb 
FROM Employees AS record  
ORDER BY record.home_city SKIP 0 LIMIT 15",prms);

完全相同的语句,完全相同的对象上下文。但是,当我添加DISTINCT修改器时,我得到以下异常。我知道所有列都是正确的,因为第一个语句完美无缺。 Jusjing除外,它似乎与ORDER BY子句有问题。

有什么东西我不见了吗?这对我来说毫无意义。

System.Data.EntitySqlException was unhandled by user code
Message='record.home_city' could not be resolved in the current scope or context. Make sure that all referenced variables are in scope, that required schemas are loaded, and that namespaces are referenced correctly. Near member access expression, line 1, column 95.
Source=System.Data.Entity
Column=95
ErrorContext=member access expression, line 1, column 95

1 个答案:

答案 0 :(得分:0)

你可以尝试下面然后再运行一个明显的? 我知道明显是你面临这个问题的主要原因,但至少你知道另一种解决方法。

ctx.CreateQuery<DbDataRecord>(@"SELECT VALUE record FROM Employees AS record  
ORDER BY record.home_city SKIP 0 LIMIT 15",prms);