WPF,如何儲存DataGrid中已經被修改了的記錄?

時間 2021-06-01 23:00:56

1樓:王韋恩卑鄙

這是乙個檢查修改狀態的問題。

這個問題在 winform 時代已經有很成熟的處理方法了

那個年代的主要處理方法是使用dataset/table/row 來跟蹤是否修改,

只要任何乙個欄位被修改過,那麼這一行Datarow.RowState 就會修改為 modified

新增的行會標記為 Added

等等。這樣dataset 在update的時候只需要根據不同的rowstate 生成不同的語句,把改動的部分提交即可。

你的這個場景我的建議是這樣的。

讓你的Entity實現 INotifyPropertyChanged (注意輸入和原來值相等的話不要fire event)

ViewModel 裡面建立乙個 Dictionary track;

讓每個 Entity propetyChanged 事件裡面都在 track 裡面增加/修改當前記錄的狀態。

這樣你提交的時候只需要把track 裡面的東西過濾一下就可以了。

如果你的客戶端是WPF 比較寬鬆,也可以不用INPC, 直接使用 ef 的tracker

自己new 乙個dbcontext

然後把Entity 全都attach 進去。這樣修改就自動進行track了。

dbcontext.Add()/dbcontext.Delete 啥的不多說

然後呢, 只需要訪問 dbcontext 的ChangeTracker 屬性就可以找到各種變更集合

大閘蟹如何儲存?

天齊 本人從2014年開始從事大閘蟹行業,爸媽在陽澄湖養大閘蟹20多年。從沒有冰箱的年代一直到現在,從小耳濡目染了各種儲存大閘蟹的辦法,也鬧過很多笑話。小的時候,我家就住在陽澄湖湖的湖邊。每天會把抓上來的大閘蟹放在魚籠裡,然後撒上一把玉公尺,把魚籠放在湖裡,一頭繫在漁船上,船上那時候還養了乙隻大黃狗...

如何儲存香菜?

周航 樓上有說冷凍的,我來補充一下,老家山東農村的,之前種過香菜。秋末冬初香菜從地里拔出來之後,把乾葉枯葉雜草什麼的去掉,在陰涼的地方垛到一起,上面鋪滿乾草。等到年前賣的時候,拿出來放到不透氣的塑膠袋裡,然後擺在地面上晾曬一下,大概乙個小時左右,香菜就從凍的焉了吧唧的樣子恢復到水靈靈的樣子了,小時候...

如何儲存Supreme T恤?

沙草瓦尼 supreme的T恤迄今為止有哪款是已經絕版 非常有收藏價值的嗎?在我認知裡好像暫時沒有。衣服這玩意是個消耗品啊,儲存它幹什麼,印花開裂了再買一件唄!真空袋沒什麼意義,因為印花已經開裂了,現在就算單純掛在那裡,它也不會惡化。你印花開裂只能是乙個原因,就是你這件衣服機洗次數太多了。如果不希望...