Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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# 如何将where子句添加到此实体框架Linq语句中_C#_Asp.net_Linq_Entity Framework - Fatal编程技术网

C# 如何将where子句添加到此实体框架Linq语句中

C# 如何将where子句添加到此实体框架Linq语句中,c#,asp.net,linq,entity-framework,C#,Asp.net,Linq,Entity Framework,我已经使用通用的respository/uow模式设置了EF 4.3 典型的方法如下所示: using (var uow = new UnitOfWork(ConnectionString.PaydayLenders)) { var r = new CrudRepo<Tier>(uow.Context); return r.Find() .Include("CommissionTiers.MatchService.Provider") .ToList(

我已经使用通用的respository/uow模式设置了EF 4.3

典型的方法如下所示:

using (var uow = new UnitOfWork(ConnectionString.PaydayLenders))
{
    var r = new CrudRepo<Tier>(uow.Context);
    return r.Find()
    .Include("CommissionTiers.MatchService.Provider")
    .ToList();
}
使用(var uow=新的工作单元(ConnectionString.PaydayLeaders))
{
var r=新的原油(uow.Context);
返回r.Find()
.包括(“CommissionTiers.MatchService.Provider”)
.ToList();
}
如您所见,我还使用导航属性在fetch中包含其他表

在本例中,一个层有许多CommissionTiers,CommissionTiers有一个MatchService,MatchService有一个提供者


我希望能够选择CommissionTier.Status=1和Provider=1的位置。是否有一种方法可以将其合并到此语句/方法中?

您可以使用Join来获得所需的功能。

您可以使用Join来获得所需的功能。

尝试以下操作:

Where(t => t.CommissionTiers
            .Any(ct => ct.Status == 1 && ct.MatchService.Provider == 1))
因为您有导航属性,所以不需要在LINQ语句中显式联接。

尝试以下操作:

Where(t => t.CommissionTiers
            .Any(ct => ct.Status == 1 && ct.MatchService.Provider == 1))

因为您有导航属性,所以在LINQ语句中不需要显式联接。

Include只用于快速加载。你确定你需要它吗?EF比linq2sql更具可模仿性,我会质疑为什么要使用泛型存储库/uow,它在大多数情况下添加了不必要的抽象。另一方面,如果Find()返回IQueryable,您应该能够使用导航属性来执行所需的操作。@omerschleifer-如果我不使用它,我仍然会返回数据库以获取CommissionTiers etcInclude只是为了快速加载。你确定你需要它吗?EF比linq2sql更具可模仿性,我会质疑为什么要使用泛型存储库/uow,它在大多数情况下添加了不必要的抽象。另一方面,如果Find()返回IQueryable,您应该能够使用导航属性来执行所需的操作。@omerschleifer-如果我不使用它,我仍然会返回CommissionTier ETC的数据库应该是
Where(t=>t.CommissionTier.Any)(…
@WiktorZychla:谢谢,修复了。@DanielHilgarth-没有达到预期的效果。当我标记提供程序状态时,只删除所选提供程序的最后一层,而不是全部3层。@dotnetnoob:我想这是一个新问题。这个问题没有包含任何关于删除内容的单词,更不用说删除的代码了如何实现这一点。应该是
Where(t=>t.CommissionTier.Any(…
@WiktorZychla:谢谢,修复了。@DanielHilgarth-没有达到预期的效果。当我标记提供程序状态时,只删除所选提供程序的最后一层,而不是全部3层。@dotnetnoob:我想这是一个新问题。这个问题没有包含任何关于删除内容的单词,更不用说删除的代码了你是如何做到这一点的。