簡體   English   中英

使用EF從數據庫查詢是否正確?

[英]Is this query from database using EF correct?

我可以問一下這是否是使用EF刪除整個數據庫表的正確方法嗎? 部門表通過DepartmentID將Facility加入設施,部門表通過FacilityID將設施預訂加入設施,我需要從設施預訂表中刪除所有記錄。 有人可以指導我,告訴我這是否正確嗎? 謝謝!

    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);

不,當然不是,您需要從<TABLENAME>刪除,並且在進行聯接時,需要另一個“ FROM <Table>”。

您可能想要這樣:

DELETE FROM FacilityReservation 

INNER JOIN Facility 
    ON Facility.FacilityID = FacilityReservation.FacilityID 

INNER JOIN Department 
    ON Department.DepartmentID = Facility.DepartmentID 

WHERE Department.DepartmentID = @departmentID;

從您的SQL語句看來,可以從Facility表中檢索DepartmentID。 因此,您的SQL語句可能相當簡單,例如:

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

請參閱SQL Fiddle。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM