내장 된 계정 컨트롤러/모델/뷰를 사용하여 표준 MVC 4 응용 프로그램을 만들었습니다. 다른 컨트롤러를 추가하려했지만 기존 사용자와 외래 키 관계를 만들려고했지만 오류 메시지가 나타납니다.MVC 4 Entity Framework - UserProfile의 외래 키
'MVC4App.Models.ListingModel'유형의 'CreatedBy'속성에 ForeignKeyAttribute가 있습니다. 유효하지 않습니다. 종속 키 유형 'MVC4App.Models.ListingModel'에서 외래 키 이름 'UserId'를 찾을 수 없습니다. Name 값은 쉼표로 구분 된 외래 키 특성 이름 목록이어야합니다.
목록 모델 코드는 다음과 같습니다.
using System; using System.ComponentModel.DataAnnotations.Schema;
namespace MVC4App.Models
{
public class ListingModel
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Location { get; set; }
public string Instrument { get; set; }
public string Genres { get; set; }
public string Description { get; set; }
[ForeignKey("UserId")]
public virtual UserProfile CreatedBy { get; set; }
public DateTime CreatedOn { get; set; }
}
}
무엇이 여기에 있습니까? 아니면이 일을해야하는 더 좋은 방법이 있습니까?
또한 이메일 주소 나 나중에 프로젝트에서 아바타 이미지에 대한 링크와 같은 사용자 속성에 추가 속성을 추가 할 수 있다고 가정합니다.
이 묻는 질문에 대해 어떻게 작동하는지 확실하지,하지만 지금까지 코드 First'이 우려'로,이 수 없습니다. 단지 하나의 ID 컬럼이 테이블 당 오직 하나만 허용됩니다. – Komengem
이것은 다소 오래된 것임을 알고 있습니다. 그러나 @ komenge-mwandila에 대답하기 위해, 테이블 당 하나의 식별 컬럼이 있습니다. Id는 ID 열이고 UserId는 단지 int입니다. 부여 된 것은 외래 키로서 식별 열일 수있는 열에 연결되지만 그것은 단지 int입니다. ID 열이있는 두 테이블 사이에 외래 키를 갖기를 원할 때 볼 수 있듯이 Entity Framework와 관련이 없지만 문제를 명확히하는 데 도움이되기를 바랍니다. –