MVC3+EF5 前台显示问题

世界因你而小 2012-09-27 10:32:09
一共3个表,做连表查询 USER,DEPT,USERTYPE
三个实体类如下

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; }



对应关系:

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);

}
}

控制器:

public ActionResult TestList()
{
var db=new USERDB();

var users = db.users.ToList();


return View(users);
}

前台代码:

@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 姓名 部门名称 人员类别


但是却显示不出来,提示“未将对象引用设置到对象的实例”,是哪里代码出错了??新手,请指教,谢谢。
...全文
188 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨笨熊三号 2012-09-27
  • 打赏
  • 举报
回复
@item.depts!=null?@item.depts.NAME:string.Empty--格式我不太清楚,意思就这样
世界因你而小 2012-09-27
  • 打赏
  • 举报
回复
有的,是允许为空的。
就是USER表里面的DEPTID有可能为null
应该怎么写?
licai1210 2012-09-27
  • 打赏
  • 举报
回复
看看当前用户对应的部门在部门表中有数据吗?

62,253

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧