我不確定如何標題的標題,所以我也很感激該部分的任何想法,並會相應地更新。使用EF將LINQ查詢的結果分配給另一個對象
使用C#,標準控制檯程序。
我有一個數據庫對象與一些領域,他們中的任何或所有可能會被改變。我有另一個包含新數據的字段。 我可以一個接一個地分配他們,它的工作,但如果我只是做整個事情,它不起作用。
可能更清晰一些代碼。 首先工作的代碼: 我擁有所有需要在newStop中更新的數據。
我出門從數據庫獲取數據並將其存儲在findStop2
中。 然後,我可以逐個瀏覽所有字段(此處僅顯示一個字段),並將值從newStop
分配到findStop2
。 當我做db.SaveChanges
一切正常。
var findStop2 = (from s in db.stop_details
where s.customer_id == customer_id && s.stop_id == newStop.stop_id
select s)
.First();
//if it did not error out it found it
findStop2.ship_date = newStop.ship_date;
但是有很多領域。爲什麼我不能只使用:
findStop2 = newStop;
當我做到這一點,做一個SaveChanges
沒有拋出錯誤,但數據庫還沒有更新。
解決方案 - 最終改變了代碼工作:
var findStop2 = (from s in db.stop_details where
s.customer_id == customer_id && s.stop_id == newStop.stop_id
select s).First();
//if it did not error out it found it
newStop.id = findStop2.id;
db.Entry(findStop2).CurrentValues.SetValues(newStop);
看看這個鏈接。這是你正在尋找的。 http://stackoverflow.com/questions/13314666/using-automapper-to-update-an-existing-entity-poco –
編輯問題時,請不要單行代碼,以免滾動頁面。 –
@布賴恩 - 通讀鏈接兩次,嘗試了幾件事,但沒有取得任何進展。該鏈接指的是ASP.net MVC - 我正在使用標準的C#控制檯程序,是不同的? –