1

.CreateQuery(sqlStatement, parameterValues) を使用してオブジェクト コンテキストからデータを取得しています。これは、ソース コードでコンパイルされた LINQ クエリではなく、CreateQuery メソッドに渡される文字列定数として使用している Entity SQL であることに注意してください。

これは完全に機能します。ただし、いくつかの重複レコードがあります...

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 修飾子を追加すると、以下の例外が発生します。最初のステートメントが完全に機能するため、すべての列が正しいことがわかります。例外で判断すると、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
4

1 に答える 1