繁体   English   中英

如何在实体框架中更新链接表

[英]How to update a linked table in entity framework

我正在使用EF代码优先方法,并且具有如下域模型类:

 public class WindmillUser
        {
            public WindmillUser()
            {
            AssignedMsos = new Collection<Mso>();
            RepackerHeaders = new Collection<RepackerHeader>();
        }
        public int WindmillUserId {get;set;}
        public string Username { get; set; }
        public RoleType Role { get; set; }
        public string Email { get; set; }
        public bool Active { get; set; }
        public DateTime? LastInteraction { get; set; }
        public string TelephoneNumber { get; set; }
        public virtual ICollection<Mso> AssignedMsos { get; set; }
        public virtual ICollection<RepackerHeader> RepackerHeaders { get; set; }
        public virtual ICollection<WindmillUser> WindmillUserImpersonateParent { get; set; }
        public virtual ICollection<WindmillUser> WindmillUsersImpersonateChild { get; set; }
   }
}

我在datacontext类中具有以下配置:

modelBuilder.Entity<WindmillUser>().HasMany(entity => entity.WindmillUsersImpersonateChild).WithMany(child => child.WindmillUserImpersonateParent)
                .Map(map =>
                    {
                        map.ToTable("WindmilUserImpersonate");
                        map.MapLeftKey("WindmillUserImpersonateParentId");
                        map.MapRightKey("WindmillUsersImpersonateChildId");
                    });

这将在数​​据库中创建一个表WindmillUserImpersonate,该表存储WindmillUser表与其自身的多对多关系。

我想在WindmillUserImpersonate表中插入记录。 我需要为WindmillUserImpersonate创建一个域模型来执行操作,如果是,那么以下域正确吗?

public class WindmillUserImpersonate
    {
        public int WindmillUserImpersonateParentId { get; set; }
        public int WindmillUsersImpersonateChildId { get; set; }
        public virtual WindmillUser WindmillUser { get; set; }
    }

而且,如果不需要创建WindmillUserImpersonate类,该如何插入/更新WindmillUserImpersonate表?

如果您具有实体WindmillUser用户并想要添加新的父childUser,则应该执行以下操作:

user.WindmillUsersImpersonateChild.Add(childUser);
context.SaveChanges();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM