私はここでかなり基本的なものが欠けていると確信していますが、それを理解できないようです..おそらく私が.NETプラットフォームを使用してからしばらく経っていたためです。
とにかく、私はこのデータベース構造をASP.NET MVC3フレームワークに持っており、「Coruse」、「Tool」、「ToolADL」(ツールからの継承)があります。「コース」には、「ツール」タイプの1つが「ToolADL」である1つ以上の「ツール」を含めることができます。
Models / 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; }
}
Models / 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:
public class ToolADL : Tool {
[Required]
public string Image { get; set; }
}
aaおよびModels/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とそれにモデルを接続し、エンティティフレームワークがその魔法を実行できるようにしようとすると、「find()」を使用するときにToolADLコントローラーの詳細関数(およびその他)で次のエラーが発生します。 :
ToolADLController.Details(int):
private ProjectContext db = new ProjectContext();
public ViewResult Details(int id){
ToolADL tooladl = db.Tools.Find(id);
return View(tooladl);
}
エラー1タイプ「Project.Models.Tool」を「caREhab_community.Models.ToolADL」に暗黙的に変換できません。明示的な変換が存在します(キャストがありませんか?)C:\ Users \ Thor \ Documents \ Visual Studio 2010 \ Projects \ Project \ Project \ Project \ ToolADLController.cs 29 31 Project
(元のプロジェクトの名前を「プロジェクト」に変更しました)
私は単に自分が間違っていることを理解することができません、それは間違ったタイプですか、私が省略した継承について本当に基本的なものですか、それとも何か他のものですか?
ある親切な魂が、なぜ私がばかで、これを理解できないのかを教えてくれることを願っています:)