2009-11-05 2 views
1

Немного странного вопроса, но есть ли способ увидеть, какие объекты привязаны к моему объекту. Я получаю несколько случайных проблем, и было бы действительно полезно их решить, если бы я мог видеть, что было прикреплено и еще не сохранено через «SaveChanges».LINQ to Entities/SQL - способ увидеть, что связано с контекстом объекта?

Ответ (Entity Framework): context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Unchanged).Select(o => o.Entity).OfType<YourObjectType>();

+0

Немного путаницы здесь, я начал свой заголовок с помощью простого linq, поскольку я ожидал, что ответ мог бы прийти из EF или SQL. Это не получилось. Однако в пользу других ответов на этот вопрос для обеих этих фреймворков можно найти здесь, поэтому я сохранил название и теги для обоих. – 4imble

ответ

1

Возможно, я недопонимаю (или упрощаю) ваш вопрос, но похоже, что GetChangeSet() может вам помочь?

+0

Спасибо, ваше предложение приводит к простому решению. GetChangeSet работает только с linq в sql, и я использую Entities, но я нашел это сообщение: http://stackoverflow.com/questions/326186/is-query-to-new-added-object-possible-in-ms-entity- Framework, и это действительно помогло мне с "context.ObjectStateManager.GetObjectStateEntries (EntityState.Added | EntityState.Modified | EntityState.Unchanged). Выберите (o => o.Entity) .OfType ()", который можно использовать в EF. – 4imble

1

Я думаю, this article может представлять интерес.

Он охватывает использование отражения, чтобы просмотреть (частные) поля в DataContext для измененных элементов. Я считаю, что он может быть адаптирован для отображения всех предметов, а не только измененных.

+0

Большое спасибо, я прочитаю это первым делом завтра утром на работе. Похоже, это должно помочь мне. – 4imble

+0

Это только для LINQ to SQL. Это не будет работать для EF. (Хотя я вижу, что в прошлом этот вопрос был помечен LINQ to SQL.) –

0

Вы просматриваете записи состояния объекта в ObjectStateManager. This article имеет пример.