LINQ到实体的动态'表'名称
问题描述:
我需要从不同级别的报告部门表中进行选择,即Dept1,Dept2,Dept3等。 [1]取决于用户选择哪个报告级别。我怎样才能动态表达'表'来选择基于给定的字符串参数,这是表名?LINQ到实体的动态'表'名称
[1]对于任何能够帮助我解决问题的人来说,简单点(让我们谈谈),比暴露的问题更加深刻。
BREAKING NEWS:看起来我正在用'switch/case'构造。我厌倦了对愚蠢的非解决方案的研究,而我发现的第一个聪明的方案并不容易工作(没有几代修道院,僻静的奉献精神)。客户的需求来到我的面前。
答
您是否有能力更改架构?我怀疑你是问这个问题,因为你没有,但如果你这样做,可能会更容易有一个Department
表,它定义了部门名称和它的ID。然后,您可以使用您正在搜索的实体和指向部门的外键的单个表。
所以,如果你想查询实体的员工,你的表可能是这样的:
Department
------------
ID int
Name text
Employee
--------------------
ID int
Name text
DepartmentID int
然后你的查询可能是这个样子:
var Employees = from emp in db.Employee.Include("Department")
where emp.Department.Name == "Sales"
select emp;
+0
我可以更改模式,但只能在稍后使用增量重写。我今天无法更改它来解决此问题。 – ProfK 2009-09-19 16:29:37
这是一个非常糟糕的组织数据的方式,但我怀疑你现在已经明白了。 – 2009-09-19 16:15:27
我明白,自从大学毕业后,我就不能总是使用我自己的设计。 :-( – ProfK 2009-09-19 17:18:30
-1对于不必要的硫酸和巧妙的措辞,请耐心等待 – Odrade 2011-01-11 00:51:39