Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最佳实践-将SQL查询转换为LINQ_Sql_Asp.net Mvc_Linq_Entity Framework - Fatal编程技术网

最佳实践-将SQL查询转换为LINQ

最佳实践-将SQL查询转换为LINQ,sql,asp.net-mvc,linq,entity-framework,Sql,Asp.net Mvc,Linq,Entity Framework,有人能建议如何将下面的SQL转换为LINQ吗 SELECT distinct EmployeeID FROM Employee, Business WHERE Administrator = 1 or (BusinessID = 1 and (EmployeeID = Initiator or EmployeeID = Owner)) 或者建议使用多个表达式实现相同结果的更好方法?我已经读过LINQ可能有缺陷,所以我

有人能建议如何将下面的SQL转换为LINQ吗

SELECT distinct EmployeeID
  FROM Employee,
       Business
 WHERE Administrator = 1 or 
         (BusinessID = 1 and
         (EmployeeID = Initiator or
          EmployeeID = Owner))

或者建议使用多个表达式实现相同结果的更好方法?我已经读过LINQ可能有缺陷,所以我认为查询越复杂,出现问题的可能性就越大?

听起来您只想:

var query = (from employee in db.Employee
             from business in db.Business
             where employee.Administrator == 1 ||
                 (business.BusinessId == 1 &&
                  (employee.EmployeeId == business.Initiator ||
                   employee.EmployeeId == business.Owner))
             select employee.EmployeeId).Distinct();

我已经猜到了哪个列属于哪个表…

听起来您只想:

var query = (from employee in db.Employee
             from business in db.Business
             where employee.Administrator == 1 ||
                 (business.BusinessId == 1 &&
                  (employee.EmployeeId == business.Initiator ||
                   employee.EmployeeId == business.Owner))
             select employee.EmployeeId).Distinct();

我已经猜到了哪一列属于哪一个表…

我已经读到LINQ可能有问题
-[需要引用]。我想你真正的意思是不是每一条SQL语句都可以转换为LINQ。我已经使用LINQ多年了,还没有发现任何错误。这不是错误,但查询越复杂,SQL输出就越可怕。我们正在进行一个练习,在这个练习中,我们使用现有的LINQ和EF查询,并在我们应用程序的性能更关键的领域手动重写它们。相关:谢谢各位。我想我不应该相信我读到的所有东西。
我读过LINQ可能有问题。
-[需要引用]。我想你真正的意思是不是每一条SQL语句都可以转换为LINQ。我已经使用LINQ多年了,还没有发现任何错误。这不是错误,但查询越复杂,SQL输出就越可怕。我们正在进行一个练习,在这个练习中,我们使用现有的LINQ和EF查询,并在我们应用程序的性能更关键的领域手动重写它们。相关:谢谢各位。我想我不应该相信我读到的一切。