开发者

Problem in Inserting or Updating in many to many relationship EF4

Let's say have 3 tables:

Category
-------------
CategoryID    int
Title         text


Admin
------------
AdminID       int
FullName      text


Permission
------------
CategoryID    int
 AdminID      int
 AllowAccess  bit

When i try to update changes to database i got following exception:

Unable to insert or update an entity because the principal end of the 'KiaNetModel.FK_Permissions_Admins' relationship is deleted.

WHY?

The function that update changes:

public static void SetPermissions(int[] cats, int userId, Entities context)
        {
            var premissions = from p in context.AdminPremissions where p.AdminID == userId select p;
            // Clear all premissions...
            foreach (var p in premissions)
            {
                p.AllowAccess = false;
            }

            foreach (var c in cats)
            {
                var es = from e in context.AdminPremissions where e.CategoryID == c && e.AdminID == userId select e;
                // If any pre permission was f开发者_开发百科ound, set flag = true
                if (es.Count() > 0)
                    es.First().AllowAccess = true;

                // Otherwise add new one
                else
                    context.AdminPremissions.AddObject(new AdminPremission() { AdminID = userId, CategoryID = c, AllowAccess = true });
            }
        }

It's an web application, and when user mark permissions, i could only determine which permissions are set, not all of them.

If you have any other idea, or better way please tell me.


I think relationship between tables Permission and Admin has been deleted from either Actual database or from Entity Model. It it is the case then u have to create that relationship again.


Generate "Admin" Table And "Permission" Drop And Create Script (With Data - If U Have Data On it).

Then Execute It, If U Have Relation Re Create It, Ur Prb Must Be Solve.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜