MiracleCode 2017-07-31 03:47 采纳率: 75%
浏览 1841

MVC5+EF 练习 读取数据问题

先要在Details页面里面显示详细信息 但是
SysUserRole表 和 SysRole表中的数据读不出来
但是好像就没有写进数据库 因为数据库中只有SysUser表中有内容 其他两个表是空的
图片说明

图片说明

下面是AccountInitializer.cs
初始化代码

 using MVC5_EF.Models;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;


namespace MVC5_EF.DAL
{
    public class AccountInitializer:DropCreateDatabaseIfModelChanges<AccountContext>//如果model改变 删除重建数据库
    {
        protected override void Seed(AccountContext context)
        {
            var sysUsers = new List<SysUser>
            {
                new SysUser { UserName="Tom",Email="Tom@qq.com",Password="1" },
                new SysUser { UserName="Terry",Email="Jerry@qq.com",Password="2" }
            };
            sysUsers.ForEach(s=>context.SysUsers.Add(s));
            context.SaveChanges();

            var sysRoles = new List<SysRole>
            {
                new SysRole { RoleName="Administrators",RoleDesc="Administrators have full authorization to perform system administration."},
                new SysRole { RoleName="Terry",RoleDesc="General Users can access the shared data they are authorizen for."}
            };
            sysRoles.ForEach(s=>context.SysRoles.Add(s));
            context.SaveChanges();

            var sysUserRoles = new List<SysUserRole>
            {
                new SysUserRole { SysUserID=1,SysRoleID=1 },
                new SysUserRole { SysUserID=1,SysRoleID=2 },
                new SysUserRole { SysUserID=2,SysRoleID=2 }
            };
            sysUserRoles.ForEach(s=>context.SysUserRoles.Add(s));
            context.SaveChanges();
        }
    }
}

下面是Details页面

 @model MVC5_EF.Models.SysUser


<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Detail</title>
</head>
<body>
    <div>
        <div>
            <dl>
                <dt>@Html.DisplayNameFor(model => model.UserName)</dt>
                <dd>@Html.DisplayFor(model => model.UserName)</dd>

                <dt>@Html.DisplayNameFor(model => model.Email)</dt>
                <dd>@Html.DisplayFor(model => model.Email)</dd>

                <dt>@Html.DisplayNameFor(model => model.SysUserRoles)</dt>
                <dd>
                    <table>
                        <tr>
                            <th>RoleName</th>
                            <th>RoleDesc</th>
                        </tr>
                        @foreach (var item in Model.SysUserRoles)
                        {
                            <tr>
                                <td>@Html.DisplayFor(modelItem => item.SysRole.RoleName)</td>
                                <td>@Html.DisplayFor(modelItem => item.SysRole.RoleDesc)</td>
                            </tr>
                        }
                    </table>
                </dd>
            </dl>
        </div>

    </div>
</body>
</html>


SysUser类

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MVC5_EF.Models
{
    public class SysUser
    {
        public int ID { get; set; }
        public string UserName { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
        public virtual ICollection<SysUserRole> SysUserRoles { get; set; }
    }
}

最后只能读取这么多
图片说明

大佬们帮忙给看看

  • 写回答

1条回答 默认 最新

  • 叫我 Teacher 周 2017-07-31 06:12
    关注

    你的 Seed 里面没有写 User 和 Role 的关系代码。
    你用了导航属性吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题