代码中的种子数据首先是实体框架

时间:2016-11-08 00:59:31

标签: asp.net-mvc entity-framework ef-code-first

我在ASP.NET MVC项目中使用代码优先的实体框架

我有这些表

用户

public class User:IBaseEntity
{
    public User()
    {
        UserRoles = new List<UserRole>();
    }

    public int ID { get; set; }
    public int RoleId { get; set; }
    public string Email { set; get; }
    public string Password { set; get; }
    public string FirstName { set; get; }
    public string LastName { set; get; }
    public string Company { set; get; }
    public string Address1 { set; get; }
    public string Address2 { set; get; }
    public string City { set; get; }
    public string PostalCode { set; get; }
    public string Country { set; get; }
    public string State { set; get; }
    public bool Active { set; get; }
    public DateTime? CreatedOn { set; get; }
    public DateTime? DeletedOn { set; get; }
    public virtual ICollection<UserRole> UserRoles { get; set; }
}

作用

public class Role : IBaseEntity
{
    public int ID { get; set; }
    public string RoleName { get; set; }
    public bool Active { set; get; }
    public DateTime? CreatedOn { set; get; }
    public DateTime? DeletedOn { set; get; }
}

的UserRole

public class UserRole : IBaseEntity
{
    public int ID { get; set; }
    public int UserId { get; set; }
    public int RoleId { get; set; }
    public virtual Role Role { get; set; }
}

IBaseEntity

public interface IBaseEntity
{
     int ID { get; set; }
}

我需要种子数据UserUserRole

如何将UserRole放入方法创建User

 public void CreateRoles(CMSDbContext context)
 {
     if (context.Roles.Count() == 0)
     {
         List< Role> listRole = new List<Role>()
         {
             new Role()
             {
                 RoleName = "Admin",
                 Active = true,
                 CreatedOn = DateTime.Now
             },
             new Role()
             {
                 RoleName = "User",
                 Active = true,
                 CreatedOn = DateTime.Now
             }
         };
            context.Roles.AddRange(listRole);
            context.SaveChanges();
        }
    }

    public void CreateUser(CMSDbContext context)
    {
        if (context.Users.Count() == 0)
        {
            List<User> listUser = new List<User>()
            {
                new User()
                {
                    FirstName = "David",
                    LastName = "Lima",
                    Active = true,
                    Email = "admin@domain.com",
                    Address1 = "New York",
                    Address2 = "Chicago",
                    Company  = "Test",
                    CreatedOn = DateTime.Now,
                    PostalCode = "123456",
                    State = "Test",
                    City = "test",
                    UserRoles =???
                    Password = CMS.Common.HashMD5.CreateMD5("12356")       
                }
            };

            context.Users.AddRange(listUser);
            context.SaveChanges();
        }
    }
}

请关注方法CreateUser有财产UserRole,不知道我可以放在这里。我还在Role表(admin,user)

中创建了一些角色

我现在陷入困境。

任何帮助将不胜感激

全部谢谢

0 个答案:

没有答案