很多人都在创造新的记录,代码优先,EF

时间:2014-10-09 06:19:02

标签: c# .net entity-framework ef-code-first

这个问题让我发疯了。我知道之前已经问过,我已经尝试了所有这些解决方案。我知道我做错了什么,但我无法找到它。

我有以下型号:

 public class User : UserEntityBase
{
  /// <summary>
        /// Gets or sets roles.
        /// </summary>
        public ICollection<SecurityRole> Roles { get; set; }
}

我有另一个角色模型:

 public class SecurityRole : EntityBase
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public ICollection<User> Users { get; set; }
    }

映射设置为:

HasMany(u => u.Roles).WithMany(r=>r.Users).Map(m=>m.ToTable("securityuserroles").MapLeftKey("UserID").MapRightKey("RoleID"));

我想插入名为“Everyone”的安全角色的新用户。 我正在使用域名服务&gt;存储库模型。

在用户域服务插入方法中,我有以下代码:

 var everyonerole = _roleService.Get(rol => rol.Name.Equals(SystemRoleTypes.Everyone.ToString())).SingleOrDefault();




if (everyonerole != null)
            {
                entity.Roles = new List<SecurityRole>();
                entity.Roles.Add(everyonerole);
            }

            base.Insert(entity, out message);

通过运行insert,它将在以下位置插入记录:

用户,以及SecurityRole表。 然后它在securityuserroles中创建一个关系。

我理解为什么它会因“分离行为”而发生。但是,我从数据库中获取角色对象并直接添加到系统中。

请帮忙。

0 个答案:

没有答案