【问题标题】:How to Add table association in Entity Framework?如何在实体框架中添加表关联?
【发布时间】:2012-08-29 01:13:22
【问题描述】:

我有一个名为 User 的表、一个名为 Permission 的表和一个关联表,因此许多用户可以拥有许多权限。

用户

ID - PK

权限

ID - PK

用户权限

用户 ID - PK(对用户的 FK)

PermissionID - PK(FK 到权限)

在实体框架中,如何向关联表添加条目以将用户链接到权限?

我尝试了以下方法,但没有成功:

var user = _Repository.Users.Single(u => u.ID == someUserID);
var permission = _Repository.Permissions.Single(p => p.ID == somePermissionID);

user.Permissions.Add(permission) //Not working
user.Permission.Attach(permission) //Still not working

_Repository.Save();

谁能帮忙?

【问题讨论】:

    标签: entity-framework c#-4.0


    【解决方案1】:

    应该是:

    UserPermission obj = new UserPermission { UserID = someUserID, PermissionID = somePermissionID };
    _Repository.UserPermissions.AddObject(obj)
    _Repository.Save();
    

    希望这会有所帮助。

    【讨论】:

    • 我认为这行不通,Entity Framework 会忽略我的表关联并将其视为导航。所以我无权访问关联表
    • 这是因为关联表只有两个与其父表相关的字段,所以它没有显示在您的 edmx 文件中。但它仍然包含在 Designer.cs 文件中。您一定会在智能感知中找到 UserPermissions
    • 我在Entity Framework Designer.cs中搜索了Table,关联表没有类
    • @AndyClark,_Repository.Save();方法的定义是什么?
    • 将所有待处理的更改保存到数据库中,这是使用存储库模式完成的
    猜你喜欢
    • 2010-10-09
    • 2011-09-21
    • 2011-10-08
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多