2012-03-08 12 views
0

このMySQLクエリをEntity Frameworkに変換するのに誰か助けてもらえますか? 私はASP .NETプロジェクトでこれを使用していますが、Entity Frameworkで基本クエリを実行する方法しか知りません。これはあまりにも複雑なようで、私は今、多くの時間以来、実用的なソリューションを見つける傾ける...MySQLクエリをEntity Frameworkクエリ構文に変換する

$rs = mysql_query("SELECT barcode,latitude,longitude,date_time,location_name 
        FROM sDetails 
        JOIN users on (users.id=sDetails.UserId) 
        WHERE (latitude and longitude is not null) 
         and (latitude <> 100000 and longitude <> 100000) 
       and id='$UserId' 
      ORDER BY date_time desc"); 

答えて

1

はあなたが(C#の例)のような何かを行うことができるはずデータベースからEntity Frameworkのモデルを生成していると仮定します:

var q = context.Details.Where(d => d.UserId = "$UserID"). 
      Where(d => d.latitude.HasValue && d.latitude != 100000 && .. etc). 
      OrderByDescending(d => d.date_time). 
      Select(d => new {d.barcode, d.latitude, d.longitude, etc ... }; 

私はあなたがユーザーテーブルから何も選択していないので、なぜあなたは参加しているか分かりません。

+0

正確な答えをありがとう。下の私の答えを見てください。私はまだそれにいくつかのエラーがあります.. –

0

ありがとう@Phil 上記のコードは、主に動作するようですが、それでも var q = contextにエラーが表示されます。 ScanDetails .Where

エラー3: 'System.Web.HttpContextは' 'ScanDetails' とタイプ「System.Webの最初の 引数を受け入れていない拡張メソッド 'ScanDetails' の定義が含まれていません。 HttpContext」(あなた がusingディレクティブまたはアセンブリ参照が不足している?)見つけることができる

これは、これまで私が持っているコードです:

public class read : IHttpHandler 
{ 
    sqlEntities _db = new sqlEntities(); 

    public bool IsReusable { get { return true; } } 

    public void ProcessRequest(HttpContext context) 
    { 
     //Write out the JSON you want to return. 

     var q = context.ScanDetails.Where(d => d.UserId = "1"). 
     Where(d => d.latitude.HasValue && d.latitude != 100000 ). 
     OrderByDescending(d => d.date_time). 
     Select(d => new {d.barcode, d.latitude, d.longitude }; 


      // stuff to do here 

    } 


    public IQueryable<ScanDetail> scanData { get; set; } 
} 
+0

私は*文脈に入れて*あなたのケース* _db *のデータベースコンテキストを意味しました。あなたはあなたの質問を修正するはずです、答えを加えないでください(それはもちろん答えです)。 – Phil

+0

ありがとう@Phil 解決策としてあなたの答えを受け入れました。 また、将来の回答についてのご意見をお聞きします。 お世話になりました:) –

関連する問題