отделить общий доступ ключ-значение к linq в среде, отличной от xml - PullRequest
0 голосов
/ 06 марта 2011

доброе утро.

По образованию я не информатик, поэтому, пожалуйста, не обращайте внимания на любые сомнительные слова.

в моей структуре базовая форма с именем Record открывает форму RecordDetail в виде диалога. например, RecordClient расширяет Record и содержит клиентские данные и списки с вкладками относящихся к клиенту дочерних данных, а RecordDetail расширяет одну дочернюю строку данных для подробного редактирования, полностью основываясь на отражениях и переопределениях отображения, хранящихся в виде пользовательских атрибутов, используемых для DataContext. Запись подкласса для приложения, но я не вижу необходимости в подклассе RecordDetail. это работает за исключением отображения правок внешнего ключа в перечисленных дочерних элементах.

i must use ObjectListView и Linq; я не могу использовать WPF / XML. потому что я делаю трюк сериализации для непостоянного подключения к базе данных, я теряю объекты внешнего ключа, когда я клонирую данные для управления состоянием. ObjectListView нужен объект внешнего ключа для отображения и общего злого умысла. я знаю Hibernate, но Linq оставляет меня в растерянности:

как я могу получить доступ к объекту внешнего ключа из Record после закрытия его диалога с RecordDetail - без связи инфраструктуры и классов, специфичных для приложения?

то есть

Type rowType = row.GetType();
IDomain workDamnit = (IDomain)dataContextReflectedFromRowType.GetTable(rowType).Where(x => x.PrimaryKey == 1).SingleOrDefault();

где «PrimaryKey» оборачивает атрибут первичного ключа, и сбой происходит между «GetTable», «Where» и «SingleOrDefault».

В это прекрасное воскресное утро ценится любая перспектива.

1 Ответ

0 голосов
/ 06 марта 2011

На самом деле я решил разложить и кэшировать объекты внешнего ключа в пуле, доступ к которому осуществляется с помощью вложенных форм записей.

...