Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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#_Entity Framework_Silverlight 4.0 - Fatal编程技术网

C# 如何将特殊实体包括在内。。。?

C# 如何将特殊实体包括在内。。。?,c#,entity-framework,silverlight-4.0,C#,Entity Framework,Silverlight 4.0,当IsActive==true时,我希望包括所有相关的OrganizationPositions this.ObjectContext.Employees.Include("OrganizationPositions") 数据库结构 Employee | OrganizationPositions --------- ------------------------- ID ID , EmployeeID , IsActive 将加载指定关

当IsActive==true时,我希望包括所有相关的OrganizationPositions

this.ObjectContext.Employees.Include("OrganizationPositions")
数据库结构

Employee |       OrganizationPositions 
---------       -------------------------
ID              ID , EmployeeID , IsActive
将加载指定关系的所有实体。无法根据条件筛选出某些实体

您可以通过执行手动联接筛选出实体:

from e in ObjectContext.Employees
join op in ObjectContext.OrganizationPositions
     on e.EmployeeID equals op.EmployeeID into g
select new {
   Employee = e,
   ActivePositions = g.Where(x => x.IsActive)
}
将加载指定关系的所有实体。无法根据条件筛选出某些实体

您可以通过执行手动联接筛选出实体:

from e in ObjectContext.Employees
join op in ObjectContext.OrganizationPositions
     on e.EmployeeID equals op.EmployeeID into g
select new {
   Employee = e,
   ActivePositions = g.Where(x => x.IsActive)
}

不可能。但是,如果正确声明导航属性,并且确实需要所述的情况,则可以使用以下代码:

//...
// First, retrieve all Employees with navigation property
var emps = new ObjectContext.Employees.Include("OrganizationPositions").AsQueryable();

// Then, clear OrganizationPositions of those that aren't active:
foreach (Employee e in emps) {
    if (e.IsActive != true)
       e.OrganizationPositions.Clear();
}

不可能。但是,如果正确声明导航属性,并且确实需要所述的情况,则可以使用以下代码:

//...
// First, retrieve all Employees with navigation property
var emps = new ObjectContext.Employees.Include("OrganizationPositions").AsQueryable();

// Then, clear OrganizationPositions of those that aren't active:
foreach (Employee e in emps) {
    if (e.IsActive != true)
       e.OrganizationPositions.Clear();
}

你能再给我们一点背景吗?不是(所有)向导。员工表已与OrganizationPositions上的OrganizationPositions表联接。EmployeeID=Employee.ID,我想包括员工上的OrganizationPositions,但只包括IsActive字段为的记录true@Masoomian您不能只加载部分相关实体-或者手动加入并获取数据,或者包括所有相关的实体谢谢亲爱的Lazyberezovsky你能给我们多一点背景吗?不是(所有)向导。员工表已与OrganizationPositions上的OrganizationPositions表联接。EmployeeID=Employee.ID,我想包括员工上的OrganizationPositions,但只包括IsActive字段为的记录true@Masoomian您不能只加载部分相关实体-或者手动加入并获取数据,或者包括所有相关的实体谢谢亲爱的lazyberezovskyit是真的,但此代码返回了AnonymousType。我需要Employee type。@很遗憾,如果您试图在查询中构造Employee,您将看到一个错误,即无法在Linq to Entities查询中构造Employee实体。这里的选项是获取匿名类型并将其映射到客户端的实体。这是真的,但此代码返回了AnonymousType。我需要员工类型。@很遗憾,如果您试图在查询中构造员工,您将看到一个错误,即无法在Linq to Entities查询中构造员工实体。这里的选项是获取匿名类型并将其映射到客户端的实体。谢谢亲爱的阿明。这是真的,但这段代码从数据库中获取所有“OrganizationPositions”,然后删除。谢谢亲爱的Amin。这是真的,但这段代码从数据库中获取所有“OrganizationPositions”,然后删除。