Linq将值从一个表分配到另一个表中
我试图从另一个表中查找列的值,然后在我的where子句中使用新查找的值。例如,我有以下表格Linq将值从一个表分配到另一个表中,linq,join,Linq,Join,我试图从另一个表中查找列的值,然后在我的where子句中使用新查找的值。例如,我有以下表格 ID Name 1 Jan 2 Feb 3 March Product Customer Start End A C Feb March A B Jan March B C March Jan 在上面的示例中,我需要查询开始ID大于结
ID Name
1 Jan
2 Feb
3 March
Product Customer Start End
A C Feb March
A B Jan March
B C March Jan
在上面的示例中,我需要查询开始ID大于结束ID的记录列表。例如,B-C-March-Jan是我要查找的记录。
我应该使用join吗?此外,如果可能的话,查询语法将非常有用
我的问题是:
var vInvalidStartEnd = from p in vRecords
where (from t in vTimePeriods where t.Name == p["Start"] select t.TID).First().Cast<int>() > (from t in vTimePeriods where t.TName == p["End"] select t.ID).First().Cast<int>()
select new
{
Product = p["Product"],
Location = p["Location"],
Start = p["Start"],
End = p["End"]
};
谢谢假设ID定义了比另一个晚的名称。Tim在评论中的问题可能是因为,首先,使用名称值作为链接而不是ID是不常见的,其次,ID不能很好地指示哪个月比另一个月大。如果我必须像您那样使用月份名称,我可能会在vTimePeriods表中有一个id、一个名称,然后是一个order值
from p in vRecords
join start in vTimePeriods on p["Start"] equals start["Name"]
join end in vTimePeriods on p["End"] equals end["Name"]
where (int)end["ID"] < (int)start["ID"]
select new
{
Product = p["Product"],
Location = p["Location"],
Start = p["Start"],
End = p["End"]
};
我不知道LINQtoDataSet的细节,但它看起来是这样的。假设ID定义了比另一个更晚的名称。Tim在评论中的问题可能是因为,首先,使用名称值作为链接而不是ID是不常见的,其次,ID不能很好地指示哪个月比另一个月大。如果我必须像您那样使用月份名称,我可能会在vTimePeriods表中有一个id、一个名称,然后是一个order值
from p in vRecords
join start in vTimePeriods on p["Start"] equals start["Name"]
join end in vTimePeriods on p["End"] equals end["Name"]
where (int)end["ID"] < (int)start["ID"]
select new
{
Product = p["Product"],
Location = p["Location"],
Start = p["Start"],
End = p["End"]
};
我不知道Linq to数据集的具体情况,但它看起来是这样的。是开始和结束日期时间还是字符串?这是C、Linq到SQL还是Linq到数据集或Linq到实体还是。。。?您尝试过什么?您好,开始和结束是字符串,这是Linq To数据集。我将用我当前的查询更新我的帖子。Thanks@TimSchmelter我已经用我的问题更新了帖子。你的问题仍然不清楚。开始ID大于结束ID意味着什么?这是一个打字错误,因为我认为你想要比较月份名称而不是ID?这些表之间的关系如何?第一个表中只有一个ID。Tim,我在这里使用ID作为示例。但是,我们的想法是使用Product的名称从Months表中查找一个int类型的值,然后决定哪个更大?这是C、Linq到SQL还是Linq到数据集或Linq到实体还是。。。?您尝试过什么?您好,开始和结束是字符串,这是Linq To数据集。我将用我当前的查询更新我的帖子。Thanks@TimSchmelter我已经用我的问题更新了帖子。你的问题仍然不清楚。开始ID大于结束ID意味着什么?这是一个打字错误,因为我认为你想要比较月份名称而不是ID?这些表之间的关系如何?第一个表中只有一个ID。Tim,我在这里使用ID作为示例。但是我们的想法是使用Product的名称从Months表中查找一个int类型的值,然后决定哪个更大。我同意。我不应该使用ID,可能使用了优先级之类的值。我同意。我不应该使用ID,可能使用了优先级之类的值