updateと似たような処理であるが、削除対象を選択してRemoveを実行してからSaveChangesを実行する。
private void buttonDelete_Click(object sender, RoutedEventArgs e)
{
using (var lc = new LearnContext())
{
var item = lc.TrnAddresses.Find(VM.SelectedAddress.Id);
if (item != null)
{
if (MessageBox.Show("削除しますか", this.Title, MessageBoxButton.OKCancel, MessageBoxImage.Warning) == MessageBoxResult.OK)
{
lc.TrnAddresses.Remove(item);
lc.SaveChanges();
MessageBox.Show("削除しました", this.Title);
}
}
}
}
大量データの削除も一度レコードを取得する必要があるようで、一発で全レコード削除する方法をみつけることができなかった。
以下のコードのように生SQLを実行すれば全レコード削除ができるのだが、なんか負けた気分。
lc.Database.ExecuteSqlRaw(@"delete from trn_address");
コメント