Я ищу способ получить детальный контроль над тем, что сохраняется с помощью Entity Framework, а не всего ObjectContext.SaveChanges (). Мой сценарий довольно прост, и я очень удивлен, что меня не обслуживают в EF - довольно просто в NHibernate и во всех других парадигмах доступа к данным, которые я видел. Я создаю кучу данных (в пользовательском интерфейсе WPF) и позволяю пользователю точно настроить то, что предлагается, и выбрать то, что фактически передается в базу данных. Для предлагаемых организаций я:
- получение набора ссылочных объектов (например, языков) через мой objectcontext,
- создание предложенных объектов и присвоение им опорных объектов (в качестве свойств навигации), поэтому в силу их связи с опорными объектами они неявно добавляются в объектный текст
- Попытка создать и сохранить отдельные объекты на основе предложенных объектов.
Я полагаю, это должно быть действительно просто и тривиально, но все, что я пробовал, наткнулось на кирпичную стену, либо я установил другой объектный текст и добавил только нужную мне сущность (затем он пытается добавить весь график и завершается неудачно как это на другом объекте контекста). Я попробовал MergeOptions = NoTracking на моих ссылочных объектах, чтобы заставить Attach / AddObject не перемещаться по ним для создания графика, но безрезультатно. Я удалил свойства навигации из ссылочных объектов. Я попробовал AcceptAllChanges, который работает, но довольно бесполезен на практике, так как я все еще хочу отслеживать и сохранять другие объекты. В простом тесте я могу создать 2 из предложенных мной объектов: AddObject, который я хочу сохранить, и затем отсоединить тот, который я не вызываю, затем вызвать SaveChanges, это работает, но опять же не очень хорошо на практике. Ниже приведены несколько ссылок на некоторые изящные идеи, которые в итоге не помогают, но иллюстрируют сложность EF для чего-то такого простого. Я действительно ищу метод SaveSingle / SaveAtomic и думаю, что это довольно разумный и простой запрос для любого DAL, пусть даже передового ORM.
- Сохранение одного объекта вместо всего контекста
- www.codeproject.com / KB / архитектура / attachobjectgraph.aspx? FID = 1534536 & DF = 90 & МРР = 25 & шум = 3 & рода = Позиция и вид = Быстрый и выберите = 3071122 & фр = 1
- bernhardelbl.spaces.live.com / блог / СНН! DB54AE2C5D84DB78! 238.entry