Сделать объект Entity Framework в общий класс через класс расширения? - PullRequest
3 голосов
/ 07 апреля 2011

У меня есть объект EF с именем PagePreference.Соответствующая таблица содержит три поля: UserName (PK, varchar (200), не нуль), PageName (PK, varchar (700), не ноль) и PageState (текст, ноль).Поле PageState содержит сериализованный (json) объект.У меня есть другой файл класса, который расширяет этот объект EF с помощью ключевого слова «частичное».Идея состоит в том, что на любой странице я могу создать объект, содержащий состояние страницы, и сериализовать его в поле PageState объекта PagePreference.У каждой страницы будет свой объект PageState, поэтому они не будут совместимы друг с другом.По этой причине я хотел бы, чтобы объект PagePreference использовал обобщения (например, PagePreference), чтобы при загрузке объекта он мог десериализовать состояние страницы в соответствующий класс ('T').Однако, когда я добавил общую нотацию к расширенному объекту PagePreference, VisualStudio пока считает его новым объектом.Кто-нибудь знает способ заставить это работать?

1 Ответ

2 голосов
/ 07 апреля 2011

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

Попытавшись проверить это самостоятельно, я обнаружил, что EntityFramework не поддерживает генерики. Даже с POCO. (может пока нет;))

...