C# T_SQL的Linq等价物
我完全是LINQ-SQL的新手,并试图学习它 这是我尝试过的(仍在工作)…我相信有更好的方法:C# T_SQL的Linq等价物,c#,linq-to-sql,C#,Linq To Sql,我完全是LINQ-SQL的新手,并试图学习它 这是我尝试过的(仍在工作)…我相信有更好的方法: SELECT Employees.EmployeeId,Employees.FirstName,Employees.LastName FROM Database.dbo.Employees Employees where Employees.FirstName not in (select FirstName from Customers) and LastName not in(sele
SELECT Employees.EmployeeId,Employees.FirstName,Employees.LastName
FROM Database.dbo.Employees Employees
where Employees.FirstName not in
(select FirstName from Customers)
and LastName not in(select LastName from Customers) and IsEmployeeActive=1
union
select CustomerId,FirstName,LastName from Customers
如果这是您经常运行的东西,最简单的方法就是将该查询放入视图中。那么视图上的LINQ语法就很容易了 如果你一心想弄清楚LINQ,那么在这里进行计算: (vb示例) (c#样本) 这种VB方法将非常接近,但需要一些调试,因为它超出了我的头脑
var innerQuery = from user in Database.Customers
select new
{
Customer.CustomerID,
Customer.FirstName,
Customer.LastName
};
var userQuery = (from employee in Database.Employees
from customer in Database.Customers
where
employee.FirstName.ToLower().Trim() != customer.FirstName.ToLower().Trim() &&
employee.LastName.ToLower().Trim() != customer.LastName.ToLower().Trim()
select new
{
employee.EmployeeId,
employee.FirstName,
employee.LastName
});
var test= innerQuery.Union(userQuery);
到目前为止,你有没有尝试过任何东西,但没有成功?实际上尝试了很少的事情……我已经更新了查询,以反映在你更新帖子并显示你正在使用c#之前,我在下面给你提供了一个vb版本。我重新标记了你的问题,这样你可能会看得更清楚。懒汉已经回答了。我发现使用测试LINQ查询非常有用。您确定要
UNION
而不是UNION ALL
?我取消了Distinct(),因为我意识到UNION语句的存在将自动确保只返回不同的值。您的工会将员工与其自身联系在一起。还没有考虑到名字不在…
和IsEmployeeActive
两次查询员工时的良好呼叫,这是打字错误。至于“不在”。。。使用联合会自动忽略任何需要的重复会议。它不需要“不在”条款。事实上不是这样,因为我们正在联合员工ID和客户ID,我投票支持你的一个,因为我们在员工ID上打了个好电话!=我的帖子上有客户ID。
Dim q = (From e In db.Employees Where e.IsEmployeeActive=1 _
Select EntityID = e.EmployeeId, e.FirstName, e.LastName).Union(From c In db.Customers _
Select EntityID = c.CustomerId, c.FirstName, c.LastName)
var q =
(from employee in Database.Employees
where !Database.Customers.Any(c => employee.FirstName == c.FirstName) &&
employee.IsEmployeeActive
select new
{
employee.EmployeeId,
employee.FirstName,
employee.LastName
}).Union(
from customer in Database.Customers
select new
{
customer.CustomerID,
customer.FirstName,
customer.LastName
});