저는 여기에 꽤 기본적인 몇 가지를 놓친 것 같습니다. 그러나 그것을 설명 할 수는 없습니다. .NET 플랫폼.ASP.NET MVC3 EF 모델 상속 암시 적으로 형식을 변환 할 수 없습니다
어쨌든이 데이터베이스 구조는 "Coruse", "Tool"및 "ToolADL"(Tool에서 상속)이있는 ASP.NET MVC3 프레임 워크입니다. "코스"는 "도구"유형 중 하나가 "ToolADL"인 하나 이상의 "도구"를 가질 수 있습니다.
모델/Course.cs :
public class Course {
[Key]
public int CourseID { get; set; }
[Required(ErrorMessage = "{0} er påkrævet")]
[Display(Name = "Værktøj")]
public virtual ICollection<Tool> Tools { get; set; }
}
모델/Tool.cs :
public abstract class Tool {
public Tool(){
Priority = 0;
}
[Key]
public int ToolID { get; set; }
[Required]
public int CourseID { get; set; }
[Required]
public int Priority { get; set; }
}
모델/ToolADL.cs : 모델 aaand
public class ToolADL : Tool {
[Required]
public string Image { get; set; }
}
/ProjectContext :
public class ProjectContext : DbContext {
// Course context
public DbSet<Course> Courses { get; set; }
// Tools
public DbSet<Tool> Tools { get; set; }
// ToolADL
public DbSet<ToolADL> ToolADLs { get; set; }
}
컨트롤러를 만들고 DbContext와 모델에 연결하여 엔티티 프레임 워크가 마술을 할 수있게 만들 때 ToolADL 컨트롤러 세부 정보 함수 (및 기타)에서 다음과 같은 오류가 발생합니다. "find() 나는 단순히 내가 무엇을 아웃으로 나뉘어진다 수 없습니다
"(프로젝트"
ToolADLController.Details (INT)는
Error 1 Cannot implicitly convert type 'Project.Models.Tool' to 'caREhab_community.Models.ToolADL'. An explicit conversion exists (are you missing a cast?) C:\Users\Thor\Documents\Visual Studio 2010\Projects\Project\Project\Project\ToolADLController.cs 29 31 Project
private ProjectContext db = new ProjectContext();
public ViewResult Details(int id){
ToolADL tooladl = db.Tools.Find(id);
return View(tooladl);
}
가 나는 orginal 한 프로젝트의 이름을 변경 ") 잘못하고있다, 나는이다. 틀린 타입들, 내가 배제한 상속 또는 다른 것에 대한 기본적인 것들이 있는가? 내가 바보 오전
db.Tools.Find(id)
에 의해 반환되는 객체 타입
ToolADL
인 경우 :
좋아, 나는 몇 가지 가정을했지만'db.Tools.Find (id)'가 디버거에서 반환하는 객체의 유형은 무엇입니까? –