LINQ & 엔티티를 사용하여 ASP.NET 멤버 자격 공급자를 .NET 3.5로 이식 할 때 필자가 읽었습니다. 그러나 모든 단일 샘플에서 보여주는 DB 모델은 새로운 모델이며 오히려 오래된 모델을 상속 받았습니다. 차이 :Entity Framework - 2 개의 실제 테이블을 하나의 "가상"테이블 문제로 통합
- 사용자 표 사용자 & 회원 테이블의 한 쌍으로 분리된다.
- DB를에있는 테이블의 모든 은 내가 속성을 복사 한이 작동하려면
일부 열 (사용자 이름, 이메일, 등)의 낮춘 버전이
Image http://content.screencast.com/users/Keith.Barrows/folders/Jing/media/c3cabe76-272d-4a33-b924-8d2c50e45e9c/EFMembership.png
Link to full size image of model
를 (이미지 참조). 이미지의 모델을 사용
는- 이 오류를 얻을 : 매핑 조각에 문제는 라인 (464)에서 시작 : EntitySets '하여 Userset'와 'aspnet_Membership는'모두 'aspnet_Membership'테이블에 매핑됩니다. 기본 키가 충돌 할 수 있습니다.
- 난 다음 수 (위의 오류를 처리하는) 내 모델에서 aspnet_Membership 테이블을 삭제하는 경우 : 매핑 조각의 문제는 라인 384에서 시작 : 열 aspnet_Membership.ApplicationId 테이블에 aspnet_Membership이 매핑해야합니다 : 그것은 기본값이 없습니다 Null을 허용하지 않습니다.
역방 스토어를 직접 편집 할 수있는 능력이 최고가 아니며 다른 것을 해킹 할 수있는 무언가를 해킹하고 싶지 않습니다. 이 문제를 해결하기위한 제안, 모범 사례 등을 찾고 있습니다.
참고 : 기존 앱의 모든 로직을 대체 할 수 없기 때문에 데이터 테이블 자체를 이동하는 것은 옵션이 아닙니다. 새로운 App을 만들기 위해이 EF Provider를 구축하고 있습니다. 향후 6 개월 동안 기존 앱이 새로운 구조로 비트 단위로 이전됩니다.
참고 : 더보기 좋게보기 위해 이미지 바로 아래에 링크를 추가했습니다.
감사합니다 줄리, 포인터가 좋을 것입니다! DB에있는 users 테이블에 멤버십 테이블을 물리적으로 병합하고 몇 개월 내에 멤버십 테이블을 삭제할 수있을 때까지 두 테이블을 동기화 된 상태로 유지하기 위해 트리거를 사용하는 방법을 살펴볼 것입니다. –
또한 내 게시물의 이미지 바로 아래에 전체 크기 이미지에 대한 링크를 추가했습니다. –