我学习制作树视图模型等,为此我正在制作以下示例
Model Tree.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace TreeTry1.Models
{
public class Tree
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int? Parent_Id { get; set; }
[ForeignKey("Parent_Id")]
public virtual ICollection<Tree> Group { get; set; }
}
}
Controller:
public ViewResult Show()
{
var roots = db.Tree.Where(r => r.Parent_Id == null);
return View(roots);
}
查看
@model IEnumerable<TreeTry1.Models.Tree>
@{
Layout = null;
}
@foreach(var item in Model){
<li>
@item.Name
@if (item.Group.Count > 0)
{
<ul>
@{Html.RenderPartial("~/Views/Tree/TreeItem.cshtml", item.Group);}
</ul>
}
</li>
}
部分视图
@model IEnumerable<TreeTry1.Models.Tree>
<ul>
@Html.Partial("~/Views/Tree/TreeItem.cshtml")
</ul>
现在我发现错误:
错误1当前上下文中不存在名称“db”
我认为通过制作这些类(up)它会自动创建一个数据库并为其提供权限模型?如果没有那么我该怎么办? 我需要SQL Server吗?或者我可以使用MDF数据库吗?
提前感谢您的答案
答案 0 :(得分:0)
是的,您需要一个SqlServer数据库... EntityFramework只是底层数据库的访问层,它本身不提供数据库功能。
关于你的&#34; db not found&#34;问题,答案很明显:在代码中你定义了变量db
?没有。 Visual Studio可以首先使用数据库,首先使用模型或首先使用代码为您生成DatabaseContext类。之后,您将在控制器中初始化该实例,如:
DatabaseContext db = new DatabaseContext();
现在编译器知道db
指的是什么!