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
Post a Comment