返回c#中查询返回值的方法的结果
本文关键字:方法 结果 返回值 查询 返回 | 更新日期: 2023-09-27 18:07:33
这是我的代码在一个控制器;我使用MVC 5 ASP。净
var x = db.MyEntity.Include(ds => ds.MyEntity1)
.Where(ds =>
(
ds.MyEntity1.MyEntity12.x <= MyEntity1.MyEntity12.x
&&
ds.MyEntity1.MyEntity12.y>= MyEntity1.MyEntity12.x
)
||
(
ds.MyEntity1.MyEntity12.x<= MyEntity1.MyEntity12.y
&&
ds.MyEntity1.MyEntity12.y>= MyEntity1.MyEntity12.y
))
.Select(ds => ds.Emp);
var finalEmp = db.Emp.Except(x).ToList();
现在我想重用这个x变量。我想把它分离成一个方法并在任何地方调用它。但是我怀疑我应该在该方法中使用什么样的返回值,所以它将与Except()一起工作。
使用IList。
通常最好通过接口公开自定义对象。这里也讨论了这个问题:为什么认为公开List
嗯,可能是c#和ASP的新手。我无法理解banavalikar给出的答案。确切地说,上述方法的返回类型应该是IQueryable
。然而,由于这个项目的结构方式,这个方法是从不同的项目中调用的。因此,它给了我in different context
误差。但是,最后我找到了一个简单的解决方案来满足我的需求;只是返回一个字符串列表。(我的EmpIds是字符串)和使用Contains()
代替Except()
public static List<string> GetNotAvailEmp(Entity1 entityx)
{
using (MyDbContext db = new MyDbContext())
{
var x = db.MyEntity.Include(ds => ds.MyEntity1)
.Where(ds =>
(
ds.MyEntity1.MyEntity12.x <= entityx.MyEntity12.x
&&
ds.MyEntity1.MyEntity12.y>= entityx.MyEntity12.x
)
||
(
ds.MyEntity1.MyEntity12.x<= entityx.MyEntity12.y
&&
ds.MyEntity1.MyEntity12.y>= entityx.MyEntity12.y
))
.Select(ds => ds.Emp.EmpId).ToList();
return x;
}
}
从控制器调用这个;
List<string> x = MyDbQueryFile.GetNotAvailEmp(entityx);
var finalEmp= db.Emp.Where(s => !x.Contains(s.EmpId)).ToList();