Return results from a method returning values of a query in C#?
这是我在控制器中的代码;我使用MVC 5 ASP.NET
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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()一起工作。
事先谢谢。
嗯,也许作为一个C和ASP.NET的新手,我不能用Banavalikar给出的答案来解决问题。对于上述方法,准确的返回类型应该是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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; } } |
从我的管制员那里打电话给我;
1 2 3 | List<string> x = MyDbQueryFile.GetNotAvailEmp(entityx); var finalEmp= db.Emp.Where(s => !x.Contains(s.EmpId)).ToList(); |
使用ILIST。
通常,最好通过接口公开自定义对象。这里也讨论了这一点:为什么公开列表被认为是不好的?