我有两个桌子。第一个包含(以及其他)20个列,名称分别为“ CustomCode1”至“ CustomCode20”。它们包含可以与相关自定义代码关联的数据值。另一个表包含20行。每行(ID为1到20)与第一个表中的相关列相关联。第二个表中有一列“已启用”。
我需要的是仅从第一张表中选择启用的列。
例如假设第二个表中启用了ID 10、15和20,我只想在CustomCode10,CustomCode15和CustomCode20列中选择值。
我知道这不是用于表格的最佳设计,但是我必须使用已有的知识。这将永远只有这20个代码。
我们将不胜感激任何帮助。
提前谢谢
编辑:
我在SQL中具有此功能,它将仅返回已启用字段的值:
选择
(((从id = 1的自定义代码中选择启用)= 1)然后CustomCode1以CustomCode1结尾的情况,
(((从id = 2的自定义代码中选择启用)= 1)然后CustomCode2以CustomCode2结尾的情况,
(((从id = 3的自定义代码中选择启用)= 1)的情况下,则CustomCode3以CustomCode3结尾,
(((从id = 4的自定义代码中选择启用)= 1)的情况下,则CustomCode4以CustomCode4结尾,
当(((从id = 5的自定义代码中选择启用)= 1)时CustomCode5以CustomCode5结尾的情况,
当(((从id = 6的自定义代码中选择启用)= 1)时,则CustomCode6以CustomCode6结尾,
(((从id = 7的自定义代码中选择启用)= 1)的情况下,则CustomCode7以CustomCode7结尾,
当(((从id = 8的customcode中选择启用)= 1)时CustomCode8以CustomCode8结尾的情况,
(((从id = 9的自定义代码中选择启用)= 1)的情况下,则CustomCode9以CustomCode9结尾,
(((从id = 10的自定义代码中选择启用)= 1)时CustomCode10以CustomCode10结尾的情况,
(((从id = 11的自定义代码中选择启用)= 1)时,则CustomCode11以CustomCode11结尾,
(((从id = 12的自定义代码中选择启用)= 1)的情况下,则CustomCode12以CustomCode12结尾,
当(((从id = 13的customcode中选择启用)= 1)时,CustomCode13以CustomCode13结尾的情况,
当(((从id = 14的自定义代码中选择启用)= 1)时,则CustomCode14以CustomCode14结尾,
情况(((从id = 15的自定义代码中选择启用)= 1)时,则CustomCode15以CustomCode15结尾,
(((从id = 16的自定义代码中选择启用)= 1)的情况下,则CustomCode16以CustomCode16结尾,
(((从id = 17的自定义代码中选择启用)= 1)然后CustomCode17以CustomCode17结尾的情况,
(((从id = 18的自定义代码中选择启用)= 1)然后CustomCode18以CustomCode18结尾的情况,
的情况下(((从id = 19的customcodes中选择启用)= 1)则CustomCode19以CustomCode19结尾,
当(((从id = 20的customcodes中选择启用)= 1)的情况下CustomCode20以CustomCode20结尾
来自客户
其中customeraccountnumber ='XXX'
但是需要一个Linq等效项。我可以删除其他地方返回的空值。
答案 0 :(得分:0)
您可以像这样加入:
using (yourDbContext dc = new yourDbContext())
{
var result = (from ro in dc.YourFirstTable
join pr in dc.YourSecondTable
on ro.RelatedID equals pr.RelatedID
where ro.Enabled == true &&
pr.AnyColumnYouWant == "SomeValue"
select new
{
FirstProperty = ro.User_FullName, //you give a name to your property,
SecondProperty = pr.Proj_Date
...
...
}).ToList();
}