はじめに

Save基本編を読まれた方が対象です。まだ読んでいない方はこちらを先にお読みください。

Saveメソッドではできないこと

Saveメソッドを使って、新規保存、更新保存ができることは先のページで説明しましたが、「削除」する方法については触れていませんでした。
察しはつくかと思いますが、Saveメソッドでは変更対象となるモデルを引数として渡すことになるため、削除を表現することができません。
よって、削除をするときはSaveAsDeleteメソッドを使用する必要があります。

使い方

非常に単純ですので、サンプルコードを使用して説明します。
VB.NET
0:  Imports Kairyu.Extensions.IO
0:  Imports Kairyu.Load
0:  Imports Kairyu.Save
・・・
1:  DB.Transact(
2:      Sub(r As ModelSaver) 
3:          Dim m= r.From(Of Prefecture ).WhereKeyEquals (1).ToItem
4:          r.SaveAsDelete(m)
5:      End Sub)
DELETE FROM 
Prefectures 
WHERE 
PrefectureID = 1
目新しいのは、4行目のコードです。これでDELETE文が発行されます。

おまけ

削除に必要なのは主キー(+バージョンキー)だけですので、以下のコードでも同じSQLが発行されます。
Imports Kairyu.Extensions.IO
Imports Kairyu.Load
Imports Kairyu.Save
・・・
DB.Transact(
    Sub(r As ModelSaver) 
        r.SaveAsDelete(New Prefecture With {.PrefectureID = 1})
    End Sub)

また、削除はダーティチェックとはまた違った扱いですので、Strageクラスは使用しません。

Last edited Mar 12, 2013 at 4:25 PM by mk3008, version 3

Comments

No comments yet.