【发布时间】:2011-02-14 12:41:37
【问题描述】:
我正在 Entity Framework 4.0 中迈出第一步,我目前正面临一个烦人的问题。
我的应用程序的身份验证/授权过程基于标准的 ASP.NET 成员资格提供程序,换句话说,数据库是众所周知的 ASPNETDB.MDF。在这个数据库中,除了其他之外,还有表 aspnet_Users 和 aspnet_Roles,它们通过表 aspnet_UsersInRoles 链接在一起。
我生成了一个新的“ADO.NET 实体数据模型”,我选择了从数据库生成,我提供了所有必要的参数,向导为我生成了相关的 .EDMX 文件。我将其命名为“SecurityModel”。在 aspnet_User 实体中,我可以看到有一个导航属性应该检索所有链接的角色,反之亦然。
此时我添加了一个新的“域服务”,在我的例子中是 SecurityDomainService。 当有人问我时,我选择了 SecurityModel,以及它包含的所有表。 即使在这种情况下,向导也会为我生成 SecurityDomainService。
显然没有任何问题。但是,我意识到在实体 aspnet_User 中我拥有所有导航属性(成员身份、配置文件、应用程序等),但角色。
我在某处读到 EntityFramework 不处理多对多关系。但是我可以在我的实体数据模型中看到 aspnet_Roles 和 aspnet_Users 之间存在关联,并且它基于 aspnet_UsersInRoles。我还可以在数据模型设计器中看到用户实体中的“角色”导航属性。
那么,我的问题是为什么没有生成这个导航属性?
提前感谢您的所有帮助。 干杯, G.
【问题讨论】:
标签: c# entity-framework ado.net entity-framework-4 ria