C# 如何检索具有每个请求状态的请求列表?
我是一名新的ASP.NET Webforms开发人员。我现在正在学习如何使用实体框架和存储库模式。我现在正在努力解决的是如何从一个TRequest表中检索请求列表,其中包含每个请求的批准状态。以下是我的数据库架构:C# 如何检索具有每个请求状态的请求列表?,c#,asp.net,entity-framework-6,repository-pattern,C#,Asp.net,Entity Framework 6,Repository Pattern,我是一名新的ASP.NET Webforms开发人员。我现在正在学习如何使用实体框架和存储库模式。我现在正在努力解决的是如何从一个TRequest表中检索请求列表,其中包含每个请求的批准状态。以下是我的数据库架构: TRequest: Id, Title, Reason TApproval: Id, RequestId, StatusId TStatus: Id, Title 我想做的是检索请求列表,包括每个请求的状态 在我的存储库模式中,我有以下代码: public IEnumerable&
TRequest: Id, Title, Reason
TApproval: Id, RequestId, StatusId
TStatus: Id, Title
我想做的是检索请求列表,包括每个请求的状态
在我的存储库模式中,我有以下代码:
public IEnumerable<TRequest> GetRequest()
{
return context.TRequest.ToList();
}
public IEnumerable<TRequest> GetRequestByStatus(int statusId)
{
return GetRequests().Where(r => r.TApproval.TStatus.Id).ToList(); //I got an error here
}
public IEnumerable GetRequest()
{
返回context.TRequest.ToList();
}
公共IEnumerable GetRequestByStatus(int状态ID)
{
return GetRequests().Where(r=>r.TApproval.TStatus.Id).ToList();//我在这里遇到了一个错误
}
为什么第二个方法GetRequestByStatus出现错误?我不能说r.TApproval.TStatus.Id
,我不知道为什么
为什么在第二个方法GetRequestByStatus中出现错误?我不能>说r.TApproval.TStatus.Id,我不知道为什么
Where
方法需要一个谓词,而您不在那里传递谓词。更正式地说,正如在报告中所述
where子句在查询表达式中用于指定
数据源中的元素将在查询中返回
表情它对每个源应用布尔条件(谓词)
元素(由范围变量引用)并返回那些
指定的条件为真。单个查询表达式可能包含
多个where子句和单个子句可能包含多个where子句
谓词子表达式
如果您试图按状态id进行筛选,则需要将行更改为
return GetRequests().Where(r => r.TApproval.TStatus.Id == statusId).ToList();
谢谢你的帮助。问题是我无法添加
TStatus
。我在这行代码下面遇到了错误,我不知道为什么。谢谢你的帮助。我知道这一点,但我真的不知道如何解决上述问题。@TechLover欢迎您。所以,这里有点奇怪。正如我所看到的,TRequest
没有任何对TApproval
的引用。尽管如此,我认为通过查询TRequest
表,您想要的是不可行的。这是一个奇怪的想法。另一方面,我可以假设您可以通过查询TApproval
表获得所需的结果,并在结果中包含相应的TRequest
。我认为像这样的context.TApproval.Inlcude(appr=>appr.TRequest)
可能会对您的案例有所帮助。