我的SQL Server数据库中有3个表Role,Permission和RolePermission.
RolePermission由两列的qRole和qPermission哪些是其他两个表的外键.
因此,当Entity Framework为其创建模型时,它只创建两个类并将虚拟属性添加RolePermission到每个角色和权限类中.
现在我需要选择列,RolePermission所以我写了这段代码:
var rolePermission = PREntitiy.Roles.Where(r => r.qRole == TxtRole.Text)
.Select(p => p.Permissions);
Run Code Online (Sandbox Code Playgroud)
这样做我可以访问rolePermission表,但是我需要从角色表中检索一些列,并从rolePermission单个查询中检索一些列,就像我们在SQL中的join语句中所做的那样.
换句话说,我需要一个linq查询来访问角色表中的一些列和一些来自rolePermission但我需要在一个linq查询中执行它,就像SQL中的join语句一样.
谢谢
我在简单的 ASP.NET Core Web API 中创建,假设我有一个如下界面:
public interface ITestService
{
string GetDate();
}
Run Code Online (Sandbox Code Playgroud)
我使用 Autofac 来处理 DI,对于上述接口,我有两个注册类型(TestService 和 TestComponent 实现 ITestService):
builder.RegisterType<TestService>().As<ITestService>().Keyed<ITestService>("service");
builder.RegisterType<TestComponent>().As<ITestService>().Keyed<ITestService>("component");
Run Code Online (Sandbox Code Playgroud)
我知道我可以注册我的类型来使用这些绑定中的任何一个,并且我知道有一种方法可以获得正确的类型,如此处讨论的:
var services = serviceProvider.GetServices<ITestService>();
var testComponent= services.First(o => o.GetType() == typeof(TestComponent));
Run Code Online (Sandbox Code Playgroud)
由于我使用 Autofac 并使用 Keyed Services 注册了我的类型,因此如何使用 IServiceProvider 和我在绑定中提供的密钥(“服务”或“组件”)解析正确的 ITestService?