문제

이것을 예로 사용하는 것만 ...

다음은 내 userprofile 테이블의 열입니다.
profileId (기본 키)
userID (외국 키)
주소
전화 번호

이제 LINQ를 사용하여 데이터베이스에 새 사용자를 추가하고 싶을 때는 다음과 같습니다.

UserProfile profileToAdd;
profileToAdd.ProfileID = 0;
profileToAdd.Address = "123 MyStreet";
profileToAdd.PhoneNumber = "123-4567";
/* How do I add in the UserID here? */

_myDB.AddToUserProfiles(profileToAdd);

몇 가지 질문 ...

  1. 내가 알아야 할 외국 키를 다루는 데 특별한 것이 있습니까, 아니면 주소 나 전화기와 마찬가지로 할당 할 수 있습니까?

  2. userID는 GUID이며 현재 사용자의 userID에서 검색해야합니다. 멤버십 클래스 나 사용자 클래스에 액세스 할 수없는 것 같습니다 (이것은 C# 라이브러리이므로 어떻게 든 참조가 필요하다고 생각하지만 내 프로젝트는 이미 라이브러리를 참조하고 있으므로 참조 할 수 없거나 다시 참조 할 수 없습니다. 원형 의존성이 있음)

  3. 나는지도를 다루는 방법을 잘 이해하지 못합니다. 구현할 때 getProfileByUserName(string userName), 여기 내 문제가 있습니다 ...

먼저 userid를 검색 할 수 없습니다. 여기 내가 시도한 내용이 있습니다.

Guid currUser = (Guid)from user in _ myDB.aspnet_Users
                             where user.UserName == userName
                             select new { user.UserId };

그러나 어떤 이유로 든 가이드에 캐스트 할 수 없다고 말합니다.

이 질문들에 대한 통찰력을 제공 할 수 있다면 나는 그것을 크게 감사하겠습니다!

감사,
매트

도움이 되었습니까?

해결책

데이터베이스에 외국 키 관계에 대한 적절한 제약이 포함 된 경우, 회원이 있어야합니다. UserProfile 클래스, 그것은 a를 가리 킵니다 User 물체. 이름이 조금 이상 할 수 있습니다. UserProfileUser 또는 그런 것.

그러나 다이어그램 에서이 이름을 변경할 수 있습니다. 사용자 엔티티 객체에 대한 포인터를 설정하면 프레임 워크가 올바른 ID를 할당합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top