DbContextとDispose

とその周辺のお話
3
Hiroaki SHIBUKI @hidori

@kazuk すぐ詰め替えるなら OR マッパの意味無いじゃん、てさっき投稿したから思ったw

2012-09-12 14:00:50
Hiroaki SHIBUKI @hidori

LINQ でクエリかけるところが魅力か。

2012-09-12 14:01:44
Kazuhiko Kikuchi @kazuk

@hidori まぁねー、ドメインモデルのストレージへのマッピングと割り切ればアプリの9割はドメインモデルのオブジェクトで動くべきとして良いんじゃないかと。ORマッパーがchangeTrackingの為に変にオブジェクトに副作用を付けるからいけないとも思う

2012-09-12 14:05:41
Hiroaki SHIBUKI @hidori

EF には Detach/Attach があるけど、LINQ to SQL には Detach しかない。

2012-09-12 14:07:56
小野 修司 @onos

EFのAttacheって比較的最近の提供だったっけ?当初はやはりなかったよーな。 RT @hidori: EF には Detach/Attach があるけど、LINQ to SQL には Detach しかない。

2012-09-12 14:10:13
Hiroaki SHIBUKI @hidori

@onos VS2010 に最初っから入ってる EF で使えてたんで EF3 ?

2012-09-12 14:11:06
小野 修司 @onos

そのあたりかな。Attacheの追加でMVCでのデータ更新のコード変えて説明した記憶あるから。 RT @hidori: @onos VS2010 に最初っから入ってる EF で使えてたんで EF3 ?

2012-09-12 14:12:57
Kazuhiko Kikuchi @kazuk

@hidori Detachも削除機能もってるから気をつけてね

2012-09-12 14:13:37
Hiroaki SHIBUKI @hidori

@kazuk リレーションの片方だけ Detach すると。。みたいな?

2012-09-12 14:16:07
小野 修司 @onos

@hidori まぁ、LINQ to SQLはその後発展していないから。しょうがないよね。

2012-09-12 14:16:18
小野 修司 @onos

SaveChangesしなきゃいいんじゃないかな(コラ RT @hidori: @kazuk リレーションの片方だけ Detach すると。。みたいな?

2012-09-12 14:18:22
Kazuhiko Kikuchi @kazuk

@hidori んー、Detach されたオブジェクトのある DbContext でsaveするとDetachされた物にdelete走る。Detach状態をDBに同期すると消えるしか無くなっちゃうから。

2012-09-12 14:19:29
Kazuhiko Kikuchi @kazuk

@onos @hidori むしろDetachしたらSaveしちゃいけない

2012-09-12 14:20:05
Hiroaki SHIBUKI @hidori

@kazuk それは remove じゃなくて? detach は changeset & DbContext と縁が切れるだけじゃないの?

2012-09-12 14:20:40
Kazuhiko Kikuchi @kazuk

@hidori 縁が切れた結果DbContextから見つからなくなり、見つからない状態をSaveChangeで保存しろと言われたDbContextさんの暴走を見守る事になる

2012-09-12 14:22:28
小野 修司 @onos

Webで使うこと「だけ」を考えると、EFの状態追跡の機能っていらん気がする。。。のだが。

2012-09-12 14:22:33
Hiroaki SHIBUKI @hidori

@kazuk Save しちゃだめなら、Detach の意味無くない? changeset がメモリ食わなくなるくらいかな?

2012-09-12 14:23:54
Kazuhiko Kikuchi @kazuk

@hidori DbContext 捨てちゃってSaveできない状態にしちゃえばDetachedオブジェクトをメモリ上に置いといて参照系で使うには使えるよ。参照系の為のオブジェクトだからってDetachしたのに気が変わったとかでSaveしちゃだめって事

2012-09-12 14:28:04
はぇ~ @haxe

@onos @hidori .NET 3.5 SP1の時点で入ってたと思いますよ〜

2012-09-12 14:28:09
Kazuhiko Kikuchi @kazuk

補足するとDetach→Attach でSaveChangeは変更されませんでしたになって問題ないです

2012-09-12 14:30:43
Hiroaki SHIBUKI @hidori

@kazuk おかしなことになたことないから、Save したことないんだなw>おれ

2012-09-12 14:32:46
小野 修司 @onos

あたしはDetacheしたことない(w RT @hidori: @kazuk おかしなことになたことないから、Save したことないんだなw>おれ

2012-09-12 14:33:24
Hiroaki SHIBUKI @hidori

1個 Detach しただけで SaveChanges がおかしくなるなら、1個だけ Detach 出来る意味がまるで分からん>特に Attach を持たない LINQ to SQL

2012-09-12 14:33:48
はぇ~ @haxe

@onos ちなみにAttach、Detach、Apacheです。

2012-09-12 14:35:19