自分で作ったフレームRJ第七編------照会編において

25661 ワード

誰も見ていませんが、書き続けます。
前に書いたのはSQL文を直接伝える方法です。C〓コードの中でSQLを見るとどうしても気分が悪くなりました。今C〓〓の書き方を見てください。

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddColumn(a
=> new { s = (a.D_Id * 5 ), b = a.U_UserName });

db.ToIList
< RJ.Model.Users > (z)
生成されたSQL文は以下の通りです。

  
    
SELECT ( [ Users ] . [ D_Id ] * @pj02gde4ln6dfwj ) [ s ] , [ Users ] . [ U_UserName ] [ b ] FROM [ Users ]
見ていると楽になりますか?匿名の相手を使いたくないなら、配列に書いてもいいです。   

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddColumn(a
=> new [] { (a.D_Id * 5 ).Alias( " D_Id " ), a.U_UserName });

db.ToIList
< RJ.Model.Users > (z)
生成されたSQL文は以下の通りです。

  
    
SELECT ( [ Users ] . [ D_Id ] * @pq6xgwpsclvtuco ) [ D_Id ] , [ Users ] . [ U_UserName ] FROM [ Users ]
フィールドが一つだけの場合も書きます。  

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddColumn(a
=> a.D_Id);

db.ToIList
< RJ.Model.Users > (z)
生成されたSQL文は以下の通りです。

  
    
SELECT [ Users ] . [ D_Id ] FROM [ Users ]
単一のデータだけを取りたい場合は、作成できます。

  
    
RJ.Model.Users user = db.Single < RJ.Model.Users > (z);
生成されたSQL文は以下の通りです。

  
    
SELECT TOP 1 [ Users ] . [ D_Id ] FROM [ Users ]
対象に戻りたくなくても、直接に戻ることができます。

  
    
DataSetDataSet user = db.ToDataSet(z);
フィルタを見に来ました

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();
z.Where(a
=> a.D_Id > 5 );

  
    
SELECT * FROM [ Users ] WHERE [ Users ] . [ D_Id ] > @pjackrftwkjpya0
複数の条件  

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.Where(a
=> (a.D_Id > 5 | a.D_Id == 2 ) & a.U_Id > 5 );

  
    
SELECT * FROM [ Users ] WHERE (( [ Users ] . [ D_Id ] > @pn13yc95bj366hk OR [ Users ] . [ D_Id ] = @p25vpkscoijdtlx ) AND [ Users ] . [ U_Id ] > @pas9pm39urm0s8l )
クエリー
Join 

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.Join
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);

  
    
SELECT * FROM [ Users ] INNER JOIN [ Department ] ON [ Users ] . [ D_Id ] = [ Department ] . [ D_Id ]
LeftJoin

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.LeftJoin
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);
RightJoin 

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.RightJoin
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);

  
    
SELECT * FROM [ Users ] LEFT OUTER JOIN [ Department ] ON [ Users ] . [ D_Id ] = [ Department ] . [ D_Id ]
普通の

  
    
var z = new SelectSqlSection < RJ.DModel.Users > ();

z.AddForm
< RJ.DModel.Department > ((a,b) => a.D_Id == b.D_Id);

  
    
SELECT * FROM [ Users ] , [ Department ] WHERE [ Users ] . [ D_Id ] = [ Department ] . [ D_Id ]

RJフレーム更新中~~