доброе утро.
По образованию я не информатик, поэтому, пожалуйста, не обращайте внимания на любые сомнительные слова.
в моей структуре базовая форма с именем 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».
В это прекрасное воскресное утро ценится любая перспектива.