読者です 読者をやめる 読者になる 読者になる

ささいなことですが。

Windowsアプリテスト自動化ライブラリFriendly開発者の日記です。

LambdicSql - α 0.0.12リリース - プリペアド対応

GitHub - Codeer-Software/LambdicSql

前回のTODOのうちのプリペアドに対応しました。
変数や直値で渡した値は自動でプリペアドに変換されます。
Where句だけでなく他の句でも同様に置き換え処理が実施されます。
ふう、一安心。
今までブログで書いたサンプルのSQLも更新しました。

public void StandardNoramlType()
{
    var max = 4000;

    var query = Sql<DB>.Create(db =>
        Select(new SelectedData()
        {
            Name = db.tbl_staff.name,
            PaymentDate = db.tbl_remuneration.payment_date,
            Money = db.tbl_remuneration.money,
        }).
        From(db.tbl_remuneration).
            Join(db.tbl_staff, db.tbl_remuneration.staff_id == db.tbl_staff.id).

        //直値や変数でパラメータを渡す。
        Where(3000 < db.tbl_remuneration.money && db.tbl_remuneration.money < max).
        OrderBy(new Asc(db.tbl_staff.name)));


    //文字列化
    Debug.Print(query.ToSqlInfo(typeof(SqlConnection)).SqlText);

    //Dapperを使っているなら、以下のように実行できます
    var datas = _connection.Query(query).ToList();
}
SELECT
tbl_staff.name AS Name,
	tbl_remuneration.payment_date AS PaymentDate,
	tbl_remuneration.money AS Money
FROM tbl_remuneration
	JOIN tbl_staff ON (tbl_remuneration.staff_id) = (tbl_staff.id)
WHERE ((@p_0) < (tbl_remuneration.money)) AND ((tbl_remuneration.money) < (@max))
ORDER BY
	tbl_staff.name ASC

履歴

2016/09/02 β版対応