如何在 linq 中执行内部 select?
How do I do an inner select in linq?
我有一个名为 Customers 的数据库 table。我 运行 以下 sql 获取有关第一和第二客户的信息:
select FirstCustomerName, SecondCustomerName,
* from Customers where FirstCustomerName = SecondCustomerName
当我在 sql 中 运行 它给了我我想要的东西,所以一个就可以了。问题是当我想在 C# 中的 Linq
中做同样的事情时。
为了用 Linq 实现同样的效果,我已经尝试过这个(仍然“不起作用”):
InfoAboutBothCustomers = c.customers.FirstCustomerName == c.customers.SecondCustomerName.ToString()
注意:InfoAboutBothCustomers 在我的 ViewModel
中是一个 int
所以我的问题基本上是如何在 LINQ 中做同样的事情?
没有样本很难提供任何解决方案。但是你可以试试这个
InfoAboutBothCustomers = c.customers.Where(x=>x.FirstCustomerName == x.SecondCustomerName).FirstOrDefault()
如有错误/问题,请分享示例。
使用.Where
操作
InfoAboutBothCustomers = c.customers.Where(c => c.FirstCustomerName == c.SecondCustomerName).FirstOrDefault();
我不确定 InfoAboutBothCustomers
中您想要什么值。你的 SQL 语句 return 有两个值,你说你想要一个 int。 c.customers.FirstCustomerName == c.customers.SecondCustomerName.ToString()
将 return 一个布尔值来表示它们是否相等。
如果您想要一个或多个符合您条件的 ID,请尝试以下操作:
var ids = from cust in customers
where cust.FirstCustomerName == cust.SecondCustomerName
select cust.Id;
或者您可以使用其他答案中提到的内容,这更清晰,但请注意 FirstOrDefault
将 return 数据行。然后,您可以通过执行以下操作来指定所需的列 FirstOrDefault().Id;
我有一个名为 Customers 的数据库 table。我 运行 以下 sql 获取有关第一和第二客户的信息:
select FirstCustomerName, SecondCustomerName,
* from Customers where FirstCustomerName = SecondCustomerName
当我在 sql 中 运行 它给了我我想要的东西,所以一个就可以了。问题是当我想在 C# 中的 Linq
中做同样的事情时。
为了用 Linq 实现同样的效果,我已经尝试过这个(仍然“不起作用”):
InfoAboutBothCustomers = c.customers.FirstCustomerName == c.customers.SecondCustomerName.ToString()
注意:InfoAboutBothCustomers 在我的 ViewModel
中是一个 int所以我的问题基本上是如何在 LINQ 中做同样的事情?
没有样本很难提供任何解决方案。但是你可以试试这个
InfoAboutBothCustomers = c.customers.Where(x=>x.FirstCustomerName == x.SecondCustomerName).FirstOrDefault()
如有错误/问题,请分享示例。
使用.Where
操作
InfoAboutBothCustomers = c.customers.Where(c => c.FirstCustomerName == c.SecondCustomerName).FirstOrDefault();
我不确定 InfoAboutBothCustomers
中您想要什么值。你的 SQL 语句 return 有两个值,你说你想要一个 int。 c.customers.FirstCustomerName == c.customers.SecondCustomerName.ToString()
将 return 一个布尔值来表示它们是否相等。
如果您想要一个或多个符合您条件的 ID,请尝试以下操作:
var ids = from cust in customers
where cust.FirstCustomerName == cust.SecondCustomerName
select cust.Id;
或者您可以使用其他答案中提到的内容,这更清晰,但请注意 FirstOrDefault
将 return 数据行。然后,您可以通过执行以下操作来指定所需的列 FirstOrDefault().Id;