zoukankan      html  css  js  c++  java
  • Entity Framework多对多关系

    1.模型类

        /// <summary>
        /// 角色类
        /// </summary>
        [Table("RoleTB")]
        public class RoleTB 
        {
            [Key]
            public int ID{get;set;}
            public string Name { get; set; }
            public string Desc { get; set; }
            public int Status { get; set; }
            [NotMapped]
            public virtual List<MenuTB> MenuTBs { get; set; }
            [NotMapped]
            public virtual List<UserTB> UserTBs { get; set; }
        }
        /// <summary>
        /// 用户
        /// </summary>
        [Table("UserTB")]
        public class UserTB 
        {
            [Key]
            public int ID { get; set; }
            public string UserName { get; set; }
            public string Password { get; set; }
            public string HeadImage { get; set; }
            [NotMapped]
            public virtual List<RoleTB> RoleTBs { get; set; }
        }
        /// <summary>
        /// 角色和用户中间表
        /// </summary>
        [Table("RoleUserTR")]
        public class RoleUserTR
        {
            [Key]
            [Column(Order = 0)]
            [ForeignKey("RoleTB")]
            public int RoleID { get; set; }
            public virtual RoleTB RoleTB { get; set; }
            [Key]
            [Column(Order = 1)]
            [ForeignKey("UserTB")]
            public int UserID { get; set; }
            public virtual UserTB UserTB { get; set; }
    
        }

    2.测试代码

                using(var dbContext=new EntityDbContext())
                {
                    RoleTB role = new RoleTB { 
                        Name="总管理员"
                    };
                    UserTB user1 = new UserTB { UserName = "admin", Password = "123456" };
                    UserTB user2 = new UserTB { UserName = "liandy", Password = "123456" };
                    dbContext.RoleTBs.Add(role);
                    dbContext.UserTBs.Add(user1);
                    dbContext.UserTBs.Add(user2);
                    dbContext.SaveChanges();
    
                    RoleUserTR roleUserTR1 = new RoleUserTR {
                        RoleID = role.ID,
                        UserID=user1.ID
                    };
                    RoleUserTR roleUserTR2 = new RoleUserTR
                    {
                        RoleID = role.ID,
                        UserID = user2.ID
                    };
                    dbContext.RoleUserTRs.Add(roleUserTR1);
                    dbContext.RoleUserTRs.Add(roleUserTR2);
                    dbContext.SaveChanges();
                }
                using (var dbContext = new EntityDbContext())
                {
                    UserTB user = dbContext.UserTBs.Where(u => u.UserName == "liandy").FirstOrDefault();
                    dbContext.UserTBs.Remove(user);
                    dbContext.SaveChanges();
                } 
                using (var dbContext = new EntityDbContext())
                {
                    RoleTB role = dbContext.RoleTBs.Where(u => u.ID == 1).FirstOrDefault();
                    List<UserTB> userTBs = dbContext.RoleUserTRs.Where(u => u.RoleID == role.ID).Select(u => u.UserTB).ToList();
                } 

    3.验证数据库

        /// <summary>    /// 角色类    /// </summary>    [Table("RoleTB")]    public class RoleTB     {        [Key]        public int ID{get;set;}        public string Name { get; set; }        public string Desc { get; set; }        public int Status { get; set; }        [NotMapped]        public virtual List<MenuTB> MenuTBs { get; set; }        [NotMapped]        public virtual List<UserTB> UserTBs { get; set; }    }

  • 相关阅读:
    谷歌地图API学习
    aspx net.2.0 C#获取IP,URL,浏览器,操作系统
    FLASH+Javascript 1,2,3,4数字标签显示图片
    yui cookie Dynamically Change Text Size Using Javascript 动态设置字体大小,写入Cookie
    [转]控制 Cookie 的作用范围
    C# 关于URL地址操作
    C#_采集
    关于C#_ArrayList的两篇文章
    未能找到存储过程_master.dbo.xp_regread
    [转]C#泛型有什么好处(转)
  • 原文地址:https://www.cnblogs.com/liandy0906/p/7733330.html
Copyright © 2011-2022 走看看