2014-12-15 2 views
0

나는 달성하기 위해 노력하고있어 내가 마이 그 레이션의 사용을 통해 내 데이터베이스를 시드하고 테이블/클래스 중 하나가 외래 키를 가지고 오류 b/c를 얻으려고 노력하고 있는데 내가 시드를 시도하면 데이터, 오류가 계속 발생합니다. 이 작업을 처음 수행하면 도움이 될 것입니다. 여기 외래 키 시드 시드

내 클래스입니다 :

protected override void Seed(TestApp.Infrastructure.Context context) 
    { 

     context.SelectOptionTypes.AddOrUpdate(d => d.Name, 
      new SelectOptionType() { Name = "Cleaning/Housekeeping"}, 
      new SelectOptionType() { Name = "Doors"}, 
      new SelectOptionType() { Name = "Electrical"}, 
      new SelectOptionType() { Name = "Fire and Safety"}, 
      new SelectOptionType() { Name = "Furniture"}, 
      new SelectOptionType() { Name = "General Repairs"}, 
      new SelectOptionType() { Name = "Heating/Air Conditioning"}, 
      new SelectOptionType() { Name = "Key/Card Access"}, 
      new SelectOptionType() { Name = "Light Bulbs/Lighting"}, 
      new SelectOptionType() { Name = "Plumbering"}, 
      new SelectOptionType() { Name = "University Applicances"}, 
      new SelectOptionType() { Name = "Pest Control"} 
      ); 

     context.SelectOptions.AddOrUpdate(d => d.OptionTypeId, 
      new SelectOption() { OptionTypeId = new SelectOptionType() { Name = "Cleaning/Housekeeping" }, OptionValue = "Carpet is wet" } 
      ); 




    } 

내가 패키지 관리자 콘솔에서 수신기 오전 오류 : '유형의 상수 값을 만들 수 없습니다

다음
public class SelectOption 
{ 
    [Key] 
    public int Id { get; set; } 

    public SelectOptionType OptionTypeId { get; set; } 

    [StringLength(100, ErrorMessage = "UserName length exceeded.")] 
    public string OptionValue { get; set; } 
} 

public class SelectOptionType 
{ 
    [Key] 
    public int Id { get; set; } 

    [StringLength(100, ErrorMessage = "Name length exceeded.")] 
    public string Name { get; set; } 
} 

내 종자 방법 TestApplication.Model.SelectOptionType '을 선택하십시오. 이 문맥에서는, 원시 형 또는 열거 형만이 지원되고 있습니다.

답변

0

즉시 문제는 참조 속성과 같은 것을 AddOrUpdate의 첫 번째 매개 변수로 사용할 수 없다는 것입니다. 스칼라 (문자열, int 등) 인 속성을 전달해야합니다. 관계를 나타 내기 위해 실제 id 속성이 있는데 OptionTypeId이 유형이 int이고 참조 속성이 OptionType 인 경우 첫 번째 매개 변수의 속성으로 OptionTypeId을 사용할 수 있습니다.