C# EntityDataSource查询内部联接
我有一个带有3个表的DB:C# EntityDataSource查询内部联接,c#,entity-framework,entitydatasource,C#,Entity Framework,Entitydatasource,我有一个带有3个表的DB: User{UserId,UserName} Role{RoleId,RoleName} User_Role{UserId,RoleId} 此查询: int userIdPassByUrl = 0; MyDbContext ctx = new MyDbContext(); var query = (from role in ctx.Role join userRole in ctx.User_Role on role.RoleId equals use
User{UserId,UserName}
Role{RoleId,RoleName}
User_Role{UserId,RoleId}
此查询:
int userIdPassByUrl = 0;
MyDbContext ctx = new MyDbContext();
var query = (from role in ctx.Role
join userRole in ctx.User_Role on role.RoleId equals userRole.RoleId
where userRole.UserId == userIdPassByUrl
select new { role.RoleId, role.RoleName }).Distinct();
我需要在带有EntityDataSource的Gridview中显示上述查询的结果,可以在设计模式下对其进行编码或设置
这是我的EntitydataSource:
<asp:EntityDataSource ID="EdsRolesByUser" runat="server"
ConnectionString="name=myDbEntities"
DefaultContainerName="myDbEntities" EnableFlattening="False"
EntitySetName="Roles" EntityTypeFilter="Role"
Select="it.[RoleId], it.[RoleName]">
</asp:EntityDataSource>
任何帮助都将不胜感激,谢谢。终于得到了。
必须修改EntityDataSource,删除EntitySetName和EntityTypeFilter
属性,并添加如下命令文本:
CommandText="SELECT DISTINCT userRole.RoleId, role.RoleName FROM Role AS role
INNER JOIN User_Role as userRole
ON role.RoleId = userRole.RoleId
WHERE userRole.UserId = @UserIdPassbyUrl"
此链接帮助我:
Hi Raphaël链接中的示例只有SELECT和WHERE,只有一个表,我真正的问题是用我的查询完成连接和不同的操作。所以它与entityDataSource无关,你只是要求一个有效的linq2entity查询?然后说你真正的问题是什么,以及你想从这个查询中得到什么……这个查询就是上面提到的,我想在一个使用EntityDataSource的GridView中显示结果,但我不知道怎么做。我编辑我的问题并显示我的EntityDataSource