树视图实体模型

时间:2014-05-09 12:33:23

标签: c# asp.net-mvc

我学习制作树视图模型等,为此我正在制作以下示例

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数据库吗?

提前感谢您的答案

1 个答案:

答案 0 :(得分:0)

是的,您需要一个SqlServer数据库... EntityFramework只是底层数据库的访问层,它本身不提供数据库功能。

关于你的&#34; db not found&#34;问题,答案很明显:在代码中你定义了变量db?没有。 Visual Studio可以首先使用数据库,首先使用模型或首先使用代码为您生成DatabaseContext类。之后,您将在控制器中初始化该实例,如:

DatabaseContext db = new DatabaseContext();

现在编译器知道db指的是什么!