2

표준 멤버십 공급자와 함께 asp.net mvc 응용 프로그램에 엔티티 프레임 워크 코드 우선 접근 방식을 사용하고 싶습니다. 등록 된 사용자는 users 테이블의 userid를 통해 사용자에게 링크되는 게시물 등을 갖습니다. 사용자에게 가리키는 게시물과 다른 객체가 POCO 클래스 (모든 ef 클래스에서 상속되지 않음)가되도록하고 싶습니다. 그러나 회원 테이블은 코드 우선이 아니므로이를 설정하는 가장 좋은 방법은 무엇입니까?엔티티 프레임 워크와 코드 첫 번째 시나리오의 멤버쉽

편집 : 찾았습니다 http://codefirstmembership.codeplex.com/. 내가 싫어하는 것은 내 자신의 물건 (blogposts 등)도 그들이 만든 회원 정보 텍스트에 포함되어야한다는 것입니다. 일을 깔끔하게 분리하고 유지할 수 있도록 내 자신의 객체를위한 또 다른 datacontext를 만들고 싶습니다. 그러나 EF에서 다른 datacontext 사이의 통신을 용이하게하는 옵션이없는 것 같습니다.

답변

2

불행히도이 문제에 대한 간단한 해결책은 없습니다. Membership을 독립형 데이터베이스로 남겨두고 Membership 개체의 EF 엔터티를 생성하는 것과 같은 심층적 인 통합을 시도하지 마십시오.

단순한 솔루션으로 표준 ASP.NET 사용자에 대한 몇 가지 추가 속성 (예 : 주소 등)을 사용하여 EF 모델 내에 User 엔터티를 만들었습니다 (프로필을 사용할 수는 있지만 성능이 크게 떨어질 수 있습니다).). 그런 다음 ASP.NET 사용자를 가리키는 EF User 객체에 외래 키가 있어야합니다.

그런 다음 ASP.NET Membership에서 추적하는 속성의 계산 된 속성을가집니다 (예 : EF User 개체가 ASP.NET 멤버 자격 공급자에게 데이터 중복을 방지하기 위해 전자 메일 같은 속성을 쿼리 함). 마이크로 소프트는 코드가 고려해야 할주의 here

+0

니스, 확실히 옵션으로 깰 수있는 ASP.NET 회원 스키마가 변경 것처럼이 이상적인 솔루션 아니라고

참고. – staccata

관련 문제