web-dev-qa-db-ja.com

Entity FrameworkとMVCを使用して、生のクエリを使用してカウントを返す

MVC WebサイトでEntity Frameworkを使用しています

私は生のクエリを使用してレコードの数だけを取得しようとしています。

私はこれらの線に沿って何かを探していますが、誰もがすべての解決策に満足しています。

var sql = SELECT COUNT(*) FROM dbo.Articles WHERE (CategoryID = 3)

var total = _context.Database.SOMETHING(sql)

そのような単純なシナリオでは、生のクエリはおそらく進むべき道ではないかもしれませんが、実際には、SQL文字列ははるかに複雑であるため、Linq to SQLを使用することはほぼ不可能です。

28
Pete Davies

SqlQuery メソッドを使用して、最初にEFコードを含む raw SQLを実行 クエリを実行できます。

var sql = "SELECT COUNT(*) FROM dbo.Articles WHERE (CategoryID = 3)";
var total = _context.Database.SqlQuery<int>(sql).First();
52
nemesv