저는 EF6 알파를 사용하고 새로운 기능을 사용하여 저장 프로 시저에 매핑합니다. 내 단위 테스트에서 "프로 시저 또는 함수 CreateDayDetail에 인수가 너무 많습니다."라는 오류 메시지가 나타납니다.저장 프로 시저에 매핑 된 EF6이있는 매개 변수가 너무 많습니다.
SQL 프로파일은 다음 시저 호출을 보여줍니다
exec [Schedule].[CreateDayDetail] @startTime=0,@duration=1,@durationEst=0,@isPaid=1,@requirePunch=0,@dayKey=16,@activityTypeKey=1,@TemplateDay_Key=NULL
문제는 자동으로 생성되고있는 @TemplateDay_Key 매개 변수입니다. 그러나 ActivityType을 만들지 않을 때 왜 생성되는지는 잘 모르겠습니다.
typeConfig.ToTable("Schedule.DayDetail");
typeConfig.Property(d => d.Key)
.HasColumnName("DayDetailKey");
typeConfig.HasRequired(d => d.Day)
.WithMany()
.Map(d => d.MapKey("TemplateDayKey"));
typeConfig.HasRequired(d => d.Activity)
.WithMany()
.Map(d => d.MapKey("ActivityTypeKey"));
typeConfig.MapToStoredProcedures(sp =>
sp.Insert(i => i.HasName("Schedule.CreateDayDetail")
.Parameter(d => d.Day.Key, "dayKey")
.Parameter(d => d.Activity.Key, "activityTypeKey")
.Parameter(d => d.StartTime, "startTime")
.Parameter(d => d.Duration, "duration")
.Parameter(d => d.DurationEstimated, "durationEst")
.Parameter(d => d.IsPaid, "isPaid")
.Parameter(d => d.RequirePunch, "requirePunch"))
.Update(u => u.HasName("Schedule.UpdateDayDetail")
.Parameter(d => d.Key, "key")
.Parameter(d => d.Day.Key, "dayKey")
.Parameter(d => d.Activity.Key, "activityTypeKey")
.Parameter(d => d.StartTime, "startTime")
.Parameter(d => d.Duration, "duration")
.Parameter(d => d.DurationEstimated, "durationEst")
.Parameter(d => d.IsPaid, "isPaid")
.Parameter(d => d.RequirePunch, "requirePunch")
.Parameter(d => d.Version, "version"))
.Delete(x => x.HasName("Schedule.DeleteDayDetail")
.Parameter(d => d.Key, "key")
.Parameter(d => d.Day.Key, "dayKey")
.Parameter(d => d.Activity.Key, "activityTypeKey")
.Parameter(d => d.Version, "version")));
내가 너무 오래 오늘이 검토 한 결과 다음과 같습니다
public class DayDetail
{
[Key]
public int Key { get; set; }
[Required]
public TemplateDay Day { get; set; }
[Required]
public ActivityType Activity { get; set; }
[Range(TimeMinimum, TimeMaximum)]
public int StartTime { get; set; }
[Range(DurationMinimum, DurationMaximum)]
public int Duration { get; set; }
public bool DurationEstimated { get; set; }
public bool IsPaid { get; set; }
public bool RequirePunch { get; set; }
[Timestamp]
public byte[] Version { get; set; }
}
내가 모델을 구성하는 데 사용하고 유창 API입니다 : 여기
는 엔티티 클래스입니다 . 내가 어떤 도움을 주셔서 감사합니다 .......