0

エンティティ フレームワークを使用して接続を確立した場合、SQL 言語で SQL クエリを使用するにはどうすればよいですか? この投稿から、ObjectContext.ExecuteStoreQuery は一部のクエリでのみ機能するため (SQL 言語と 1:1 ではない)、役に立たないことがわかりました。

そこに記載されている他のオプションは、ObjectContext.Connection を使用し、そこから「クラシック」ADO.NET コードを記述することですが、その方法がわかりません。

誰かが非常に簡単なコード例を書いてくれませんか?

select MAX(customer_id) from Customers 

エンティティフレームワークで?Linq-To-Sql が存在することは知っていますが、SQL 言語を使用することを好みます。SQL 言語の方が簡単に見え、慣れています。

4

2 に答える 2

9

メソッドを使用しDatabase.SqlQueryて実行するSQL queries

var maxId= context.Database.
           SqlQuery<int>("select MAX(customer_id) from Customers")
                                                              .SingleOrDefault();

contextこれは、DataContextクラスオブジェクトで想定して機能するはずです。

于 2012-06-12T17:14:32.577 に答える
2

答えではありませんが、私はしなければなりません...

私はSQL言語を使用することを好みます

SQL を「忘れて」ください! Linq はそれほど難しくありません。文字列リテラルのSQLはメンテナンス地獄です。Linq は厳密に型指定されているため、コンパイラはコードの破損からユーザーを保護します。インテリセンスがあり、儀式的なコードがはるかに少なく、複雑なクエリを表現するのがはるかに簡単です。などなど。

あなたのステートメントはLinqのケーキです。

context.Customers.Max(c => c.customer_id)

まあ、ただのアドバイス:D

于 2012-06-12T19:53:45.013 に答える