实体框架4.0 - EntityDataSource多对多关系查询?

时间:2011-01-19 07:26:14

标签: entity-framework

我想通过2个实体(AppRoles和AppUsers)进行选择,

如果在SQL中,我会这样做,例如:

SELECT u.*, r.* FROM AppUsers u ,AppRoles r WHERE u.RoleID = r.RoleID 

也可以在Code-Behind中使用LINQ语法来完成。

但是,我不知道如何在EntityDataSource

中做

以下是我的加价:

<asp:EntityDataSource ID="edsUsers" runat="server" 
    ConnectionString="name=ReferralDBEntities" 
    DefaultContainerName="ReferralDBEntities" EnableFlattening="True" 
    EntitySetName="AppUsers"
    Include="AppRoles"
    Select="it.AppUsers, it.AppRoles"
    Where="it.AppUsers.RoleID = it.AppRoles.RoleID"
    >
</asp:EntityDataSource>

但它显示错误。

2 个答案:

答案 0 :(得分:1)

假设您需要每个角色中所有用户的列表

并假设你有一个3表结构,即用户,UserInRoles,UserRole

然后

<asp:EntityDataSource ID="edsUsers" runat="server" 
   ConnectionString="name=ReferralDBEntities" 
   DefaultContainerName="ReferralDBEntities" EnableFlattening="True" 
   EntitySetName="UserInRoles"
   Include="UserRole, User"
   Select="it.User.FullName, it.UserRole.Name">
</asp:EntityDataSource>

完成工作

答案 1 :(得分:0)

较旧的帖子没有回答。

尝试删除Select =“it.AppUsers,it.AppRoles”

否则我不确定如何在EDMX中设置两个表之间的关系。您也可以查看这些内容。