0

我有三个名为 TechnologyType、PermisionLevel 和 SecurityRole 的实体。而且,我在名为 SecurityRoleTypePermisions 的单独表中设置这些表之间的链接。其中这个关系表主要定义了某些 SecuritRole--> 具有一定的 Permission--> 在某些技术类型(如服务器)上。

现在,当我填充这个 m-to-m 表时,我将有不同的场景:- 1. 这些值之间的映射可能已经定义,并且需要更新。2. 或者地图是新的,需要添加记录。

因此,为了避免这种检查,我决定对我的操作方法执行以下操作:-

[HttpPost]
        public ActionResult AssignPermisionLevel2(ICollection<SecurityroleTypePermision> list, int id)
        {

            repository.DeleteSecurityroleTypePermisions(id);
            foreach (var c in list)
            {
                repository.InsertOrUpdateSecurityroleTypePermisions(c);
            }
            repository.Save();
            return RedirectToAction("Index");
        }

和两个存储库方法:-

public void DeleteSecurityroleTypePermisions(int securityroleID)
        {

            var r = tms.SecurityroleTypePermisions.Where(a => a.SecurityRoleID == securityroleID);
            foreach (var c in r) {
                tms.SecurityroleTypePermisions.Remove(c);
            }

        }
public void InsertOrUpdateSecurityroleTypePermisions(SecurityroleTypePermision role)
        {
         tms.SecurityroleTypePermisions.Add(role);       }

因此,主要是在链接 SecurityRole-->TechnologyType-->PermisionLevel 时我会执行以下操作:-

  • 删除 m-to-m 表中具有当前 SecurityRoleID 的所有记录。

  • 根据从视图接收到的值在 M-to-M 表中插入新记录。

所以没有编辑操作,每当用户提交安全角色的设置时,我将删除相关记录并根据新值创建新记录?那么我的方法是否足够公平?

4

0 回答 0