asp.net mvc - Populating a table with many-to-many relationship -


i have 3 entities named technologytype, permisionlevel, , securityrole. and, setting link between these tables in separate table named securityroletypepermisions. relation table define securitrole--> has permission--> on technology type(such server).

now when populating m-to-m table , have different scenarios:- 1. map between these values might defined, , need updated. 2. or map new , records should added.

so avoid checking , decide following on action method:-

[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");         } 

and 2 repository methods:-

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);       } 

so following when linking securityrole-->technologytype-->permisionlevel:-

  • delete records on m-to-m table have current securityroleid.

  • to insert new records on m-to-m table based on values recieved view.

so there no edit action, whenever user submit setting security role delete related records , create new ones based on new values ? approach fair enough?


Comments