2011-04-06 3 views
3

PagePreference라는 EF 개체가 있습니다. 해당 테이블에는 UserName (PK, varchar (200), not null), PageName (PK, varchar (700), not null) 및 PageState (text, null)의 세 필드가 있습니다. PageState 필드는 직렬화 된 (json) 객체를 포함합니다. 나는 'partial'키워드를 통해이 EF 객체를 확장하는 또 다른 클래스 파일을 가지고있다. 아이디어는 주어진 페이지에서 페이지 상태를 포함하는 객체를 만들고 PagePreference 객체의 PageState 필드에 직렬화하는 것입니다. 각 페이지에는 서로 다른 PageState 객체가 있으므로 서로 호환되지 않습니다. 이 때문에 객체를로드 할 때 페이지 상태를 적절한 클래스 ('T')로 직렬화 해제 할 수 있도록 PagePreference 객체에서 제네릭 (예 : PagePreference)을 사용하고 싶습니다. 그러나 확장 된 PagePreference 객체에 일반 표기법을 추가하면 VisualStudio는 새로운 객체로 간주합니다. 이 기능을 작동시키는 방법을 아는 사람은 누구입니까?Entity Framework 개체를 확장 클래스를 통해 일반 클래스로 만드시겠습니까?

답변

2

제네릭 클래스와 제네릭이 아닌 클래스가 동일하지 않기 때문에 이러한 문제가 발생하는 것은 자연스러운 일입니다. 엔티티가 자동 생성되므로이 작업을 직접 수행하는 것이 두려워요. 그러나 시도 할 수있는 것은 use POCOs입니다. 어쨌든 원하는대로 성형 할 수 있어야합니다.

이 테스트를 거친 후 EntityFramework가 제네릭을 지원하지 않는다는 것을 알았습니다. POCO와도. (아마도 아직;))

+0

감사합니다. 내 자신의 래퍼를 만들고 속성을 적절히 노출 할 것입니다. – Trevor

+0

좋은 생각처럼 들립니다, 행운을 빌어 요;) – AbdouMoumen

관련 문제