• EF include 预先加载


    在asp.net mvc 中,常在控制器中预先加载导航属性,以便在视图中能够显示起关联的数据。 如果不预先加载,View中就会无法呈现外键的 关联数据。 会提示EF 错误发生。

    一、

    模型:

    public class Department
    {
    public int DepartmentID { get; set; }

    [StringLength(50, MinimumLength = 3),Display(Name="部门名称")]
    public string Name { get; set; }

    [Display(Name="经费预算")]
    [DataType(DataType.Currency)]
    [Column(TypeName="money")]
    public decimal Budget {get;set;}

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString="{0:yyyy-MM-dd}",ApplyFormatInEditMode=true)]
    [Display(Name="成立日期")]
    public DateTime StartDate { get; set; }

    [Display(Name = "负责人")]
    public int? InstructorID { get; set; }

    [Timestamp]
    public byte[] RowVersion { get; set; }

    [Display(Name="负责人")]
    public virtual Instructor Admistrator { get; set; }

    public virtual ICollection<Course> Courses { get; set; }
    }
    }

    public class Course
    {
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    [Display(Name="课程代码")]
    public int CourseID { get; set; }

    [Display(Name="课程名称")]
    [StringLength(50,MinimumLength=3)]
    public string Title { get; set; }

    [Display(Name="学分")]
    [Range(0,50)]
    public int Credits { get; set; }
    [Display(Name="部门名称")]
    public int DepartmentID { get; set; }


    public virtual Department Department { get; set; }
    public virtual ICollection<Enrollment> Enrollments { get; set; }
    public virtual ICollection<Instructor> Instructors { get; set; }

    控制器调用 :

    private SchoolContext db = new SchoolContext();

    var courses = db.Courses.Include(c => c.Department); lambda表达式形式。

    二、有些情况下,无法使用lambda表达式形式,可以使用字符串形式的Include预先加载。

     var categorys =ContextFactory.GetCurrentContext().Categories.Include("Articles").Where(c => c.NavbarIsShow).OrderBy(c => c.PriorOrder);

  • 相关阅读:
    接口的使用
    web service 实现无刷新返回一个表
    webservice 实现动态刷新
    js 实现子树选中时父目录全被选中
    相册的简单实现
    基于角色的身份验证3
    一个购物车的简单实现(多层开发)
    asp2.0 中实现 msdn 左边导航栏
    xsl 中 xsl:copy 的使用
    企业库中使用transaction(企业库中的列子)
  • 原文地址:https://www.cnblogs.com/liuyuanhao/p/4486464.html
Copyright © 2020-2023  润新知