EF6中執行Sql語句


EF中提供了兩個方法,一個是執行查詢的Sql語句SqlQuery,另外一個是執行非查詢的語句ExecuteSqlCommand。SqlQuery有兩種形式的,一種是泛型的,一種是非泛型的。比如我們要在目錄表中查詢ID為多少的一個分類。可以這樣寫:

entityList = dbContext.Set<Catalog>().SqlQuery("Select * from catalog where CatalogID='1234'").ToList();

       它會為你自動轉換成對應的實體的。另外,如果你想查詢目錄表中所有的記錄數,那么你可以這樣寫:

int countNum = dbContext.Database.SqlQuery<int>("Select count(*) from catalog").ToList()[0];

        如果你想執行一些非查詢的Sql語句,你可以調用ExecuteSqlCommand方法,它會返回受影響的行數。你可以這樣寫:

int num = dbContext.Database.ExecuteSqlCommand("delete from catalog where CatalogID='212222' ");

        返回值是執行這個非查詢語句后,受影響的行數。如果你在ExecuteSqlCommand方法中傳入了一個查詢類的Sql語句,不管查詢出來的結果是什么,它返回的都是-1。如:

int num = dbContext.Database.ExecuteSqlCommand("Select count(*) from catalog");//結果是-1

轉自:https://www.cnblogs.com/xiaoxiangfeizi/p/3551855.html,表示感謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM