Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检索具有每个请求状态的请求列表?_C#_Asp.net_Entity Framework 6_Repository Pattern - Fatal编程技术网

C# 如何检索具有每个请求状态的请求列表?

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&

我是一名新的ASP.NET Webforms开发人员。我现在正在学习如何使用实体框架和存储库模式。我现在正在努力解决的是如何从一个TRequest表中检索请求列表,其中包含每个请求的批准状态。以下是我的数据库架构:

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)
可能会对您的案例有所帮助。