生成的 SQL 进行交叉连接,但由于 ID 匹配,它的行为类似于内部连接,但是否有更好的执行方式通过实际使用 C# 中的 join 关键字来执行此操作?有没有一种方法可以让您不必指定属性的连接方式,因为无论如何它们都是层次相关的
项目是一个页面类
PageRoles 是 Page 类中的 IQueryable 属性
aspnet_Roles 是 PageRole 类中的 IQueryable 属性
var item = _repository.GetByKey(999);
var f = (from fd in item.PageRoles
from k in fd.aspnet_Roles
where Roles.GetRolesForUser().Contains(k.RoleName)
&& k.RoleId == fd.RoleId
select k.RoleName)
.Count();
编辑:
这是我的类中的 IQueryable 属性的示例。下面的例子来自 PageRole 类
public IQueryable<aspnet_Role> aspnet_Roles
{
get
{
var repo=NorthCadburyWebsite.Models.aspnet_Role.GetRepo();
return from items in repo.GetAll()
where items.RoleId == _RoleId
select items;
}
}