2016-10-13 20 views
-1

私はSQLテキストクエリを持っています。私はlinqを使用したくない、それは複雑なlinqになります。SQLからIQueryable <T>

他のlinqクエリで使用できるSQL文字列からIQueryable式を取得するにはどうすればよいですか? 私はこのような何かを取得したい:

public class ElementCount 
{ 
    public int ElementID { get; set; } 
    public int ElementCount { get; set; } 
} 

string sql = "<element count query>"; 

IQueryable<ElementCount> elementsCount = GetExpression(sql); 

dbContext.Elements.Join(elementsCount ,element=>element.ID,elementCount=>elementCount.ElementID, 

...など、または他の何かLINQクエリ

+1

['SqlQuery'](https://msdn.microsoft.com/en-us/library/system.data.entity.dbset.sqlquery%28v=vs.113%29.aspx)が目的。 raw SQLから 'IQueryable'を取得することが可能かどうかはわかりませんが、' SqlQuery'は列挙されるまでクエリを実行しません。あなたが探しているものがLINQメソッドを呼び出せるようになっているならば、あなたは 'IEnumerable'オーバーライドも持つことができるでしょう。 –

+0

私は試しました。これは動作しません。 SqlQuery return DbRawSqlQuery –

+0

なぜIQueryableが必要なのですか? –

答えて

1

をクエリがC#で定義する必要がありますか?

そうでない場合は、DBのビューまたはストアドプロシージャに作成し、DbContextにIQueryableとしてマップすることができます。

+0

はい、動作します –

関連する問題