自分で作ったフレームRJ第七編------照会編において
25661 ワード
誰も見ていませんが、書き続けます。
前に書いたのはSQL文を直接伝える方法です。C〓コードの中でSQLを見るとどうしても気分が悪くなりました。今C〓〓の書き方を見てください。
Join
前に書いたのは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フレーム更新中~~