假設我正在從Excel文件中讀取數據,並且需要使用EF保存該數據。讀完excel之後,我在EF模型中構造了一個類型的實體 - 比如說假日。通過實體框架保存顯式實體
可能是這個特定的假期已經存在於我的數據庫中,或者可能不存在。我無法通過閱讀Excel文件來了解它。因此,我檢查該實體是否存在,如果是這樣,我必須修改現有實體或添加一個新實體。
以下是我如何處理邏輯。
foreach (var holiday in clientDataObj.Holidays)
{
// to check for existing holidays, no need to consider the location, as all holidays will anyway exist at root level.
Holiday existingHoliday =
ClientContext.Holidays.SingleOrDefault(h => string.Equals(h.Date, holiday.Date));
if (existingHoliday == null)
{
rootLocation.Holidays.Add(holiday);
}
else
{
holiday.HolidayId = existingHoliday.HolidayId;
ClientContext.Entry(existingHoliday).State = System.Data.Entity.EntityState.Detached;
ClientContext.Entry(holiday).State = System.Data.Entity.EntityState.Modified;
}
}
ClientContext.SaveChanges();
我還沒有運行代碼,看它是否工作。有人可以告訴我們這是否是這樣做的方法,或者是否有解決這個問題的其他最佳做法。
謝謝,我會試試看。 – devC
謝謝,你有一些寶貴的建議。 – devC
嗨,我用你的建議解決了問題,但現在有一個新問題。感謝您能否提供幫助。 http://stackoverflow.com/questions/37202341/ef-associated-entity-is-trying-to-add-to-the-database-when-adding-an-entity – devC