2012-02-01 7 views

答えて

-2

これはJavaScriptでアドホッククエリを作成したい場合は、少なくとも、可能ではありません。 Linq(任意のフレーバの)はコンパイラ技術です。 Linq構文またはLinq式を使用するクエリは、データベースによって直接解釈されるのではなく、C#またはVBコンパイラによって処理されます。

これを行う通常の方法は、C#のWebサービスを使用し、Linqを使用してデータをフェッチして保存し、クリーンなAPIをクライアントに提示することです。その後、クライアントはAJAX呼び出しを介してサービスを消費する可能性があります。

1

edge.jsフレームワークをチェックアウトする必要があります。node.jsを.Netに接続します。 1つの方法は、組み込みのT-SQLサポートをエッジで使用し、linq.jsのようなものを使用して結果を操作することです。

var getTop10Products = edge.func('sql', function() {/* 
    select top 10 * from Products 
*/}); 

getTop10Product(null, function (error, products) { 
    if (error) throw error; 
    console.log(products); 
}); 

そうでない場合には、.NETライブラリ内のセットアップのEFのDataContextをできたと私は同じことを思っていたように私は今日、この質問に出くわしたこと使用してLINQの

var getTop10Product = edge.func(function() {/* 
    async (input) => { 
     using (var db = new ProductContext()) 
     { 
     //Linq to EF query 
     var query = from b in db.Products 
        orderby b.Name 
        select b; 
     return query.Take(10).ToList(); 
     } 
    } 
*/}); 
0

を呼び出す、と後もう少し調べてみるとSquelにやって来た。

彼らのウェブサイトから直接引用:

//this code 
squel.select() 
    .from("students") 
    .field("name") 
    .field("MIN(test_score)") 
    .field("MAX(test_score)") 
    .field("GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ')") 
    .group("name") 
); 

/* will return this SQL query as a string: 
    SELECT 
     name, 
     MIN(test_score), 
     MAX(test_score), 
     GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ') 
    FROM 
     students 
    GROUP BY 
     name 
*/ 

うまくいけば、これは検索しながら、この質問に出くわす誰に役立ちます。

幸運を祈る!

PS:ブラウザでSQLクエリを生成しない程度<挿入標準の免責事項... >

あなたのデータベースにSQLクエリを送信するクライアント側のJavaScriptを作成している場合は、ワームの全体の缶を開けます - ブラウザがSQLクエリを指示し、ユーザがブラウザから来るものを操作できる場合、あなたはSQL injection attacksに脆弱です。

ボトムライン:ブラウザでは使用しないでください!

3

今日、JayData http://jaydata.org/です。

todoDB.Todos 
    .filter(todo => todo.Completed == true) 
    .map(todo => todo.Task) 
    .forEach(taskName => $('#list') 
    .append('Task: ' + taskName + ' completed')); 

クエリ:あなたは(活字体またはTraceurのように、最新のように、Firefoxのそれをサポートしているブラウザ、またはtranspilerで)C#に非常に似ています新しいES6アロー関数のシンタックスを使用することができます

データソースに応じて、SQLクエリ(select Task from Todos where Completed = true)または$ filter URLパラメータ(http://.../?$filter=Completed%20eq%201&$select=Task)に変換されます。

2

今週、LINQ to EntitiesのJSバリアントから始めました。例

var comments = await Comment.getAll() 
.where(e => e.author.endsWith("something") || e.author.startsWith("somethingElse")) 
.orderByDescending("created") 
.limit(10) 
.skip(0) 
.exec(); 

UniMapperJS

チェックしかし、JSの制限のcuzのは、その矢印の関数は、文字列として解析されているので、で変数を受け入れる方法を、把握することは困難でした。私は "仮想"変数($)とargsのリストを最後のparamとして解決しました。

var comments = await Comment.getAll() 
.where(e => e.author.endsWith($) || e.author.startsWith($), filter.endsWith, filter.name) 
.orderByDescending("created") 
.limit(10) 
.skip(0) 
.select(e => e.author) 
.exec(); 
関連する問題