当前位置: 代码迷 >> ASP.NET >> MVC3+EF5 前台显示有关问题
  详细解决方案

MVC3+EF5 前台显示有关问题

热度:7592   发布时间:2013-02-25 00:00:00.0
MVC3+EF5 前台显示问题
一共3个表,做连表查询 USER,DEPT,USERTYPE
三个实体类如下
C# code
public class USER    {       [Key]        public int USERID { get; set; }        public string NAME { get; set; }        public string DEPTID{ get; set; }        public string TYPEID{ get; set; }        public virtual DEPT depts { get; set; }        public virtual USERTYPE usertypes{ get; set; }     }public class DEPT     {       [Key]        public string DEPTID{ get; set; }        public string NAME{ get; set; }        public virtual ICollection<USER> users { get; set; }     }public class USERTYPE    {       [Key]        public string TYPEID{ get; set; }        public string NAME{ get; set; }        public virtual ICollection<USER> users { get; set; }     }


对应关系:
C# code
public class USERDB:DbContext    {        public DbSet<USER> users { get; set; }        public DbSet<DEPT> depts { get; set; }        public DbSet<USERTYPE> usertypes{ get; set; }        protected override void OnModelCreating(DbModelBuilder modelBuilder)        {                        modelBuilder.Entity<USER>()                .HasRequired(u => u.depts)                .WithMany(d => d.users)                .HasForeignKey(a => a.DEPTID)                .WillCascadeOnDelete(false);             modelBuilder.Entity<USER>()                .HasRequired(u => u.usertypes)                .WithMany(t => t.users)                .HasForeignKey(a => a.TYPEID)                .WillCascadeOnDelete(false);                       }    }

控制器:
C# code
public ActionResult TestList()        {            var db=new USERDB();            var users = db.users.ToList();                        return View(users);        }

前台代码:
HTML code
@model IEnumerable<testlist.Models.USER>@foreach (var item in Model) {    <tr>               <td>            @item.ID        </td>        <td>            @item.NAME        </td>        <td>            @item.depts.NAME   //<--------这里报错        </td><td>            @item.usertypes.NAME        </td>        <td>


我想显示的结果:
ID 姓名 部门名称 人员类别


但是却显示不出来,提示“未将对象引用设置到对象的实例”,是哪里代码出错了??新手,请指教,谢谢。

------解决方案--------------------------------------------------------
看看当前用户对应的部门在部门表中有数据吗?
------解决方案--------------------------------------------------------
@item.depts!=null?@item.depts.NAME:string.Empty--格式我不太清楚,意思就这样
  相关解决方案