【问题标题】:Is this query from database using EF correct?使用 EF 从数据库中查询此查询是否正确?
【发布时间】:2015-10-02 07:48:27
【问题描述】:

请问这是否是使用 EF 删除整个数据库表的正确方法? Department 表使用 DepartmentID 连接 Facility, Facility 表使用 FacilityID 连接 Facility Reservation, 我需要从 Facility Reservation 表中删除所有记录。 有人可以指导我并告诉我这是否正确? 谢谢!

    db.Database.ExecuteSqlCommand(
                    "DELETE FacilityReservation FROM Department INNER JOIN Facility ON Department.DepartmentID = Facility.DepartmentID " +
                        "INNER JOIN FacilityReservation ON Facility.FacilityID = FacilityReservation.FacilityID WHERE Department.DepartmentID =" + departmentID);

【问题讨论】:

    标签: c# mysql sql entity-framework


    【解决方案1】:

    不,当然不是,你需要一个 DELETE FROM ,当你进行连接时,你需要另一个“FROM

    ”。

    你可能想要这个:

    DELETE FROM FacilityReservation 
    
    INNER JOIN Facility 
        ON Facility.FacilityID = FacilityReservation.FacilityID 
    
    INNER JOIN Department 
        ON Department.DepartmentID = Facility.DepartmentID 
    
    WHERE Department.DepartmentID = @departmentID;
    

    【讨论】:

      【解决方案2】:

      从您的 SQL 语句看来,DepartmentID 似乎可以从您的 Facility 表中检索到。因此,您的 SQL 语句可能相当简单,例如:

      DELETE a
      FROM FacilityReservation a
      INNER JOIN Facility b ON a.FacilityID = b.FacilityID
      WHERE b.DepartmentID = @departmentID
      

      See SQL Fiddle here.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 2019-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多