[EF]利用Telerik Data Access執行RAW SQL(non query)
telerik提供了相當簡單的方式利用EF去執行RAW SQL:
不過這是non-query非查詢種類的執行RAW SQL喔,查詢種類的RAW SQL的話。。。個人是覺得不常用拉,在此便只說明non-query種類的執行方式。
using (MyDatabase db = new MyDatabase())
{
String strSQL = "";
strSQL = strSQL + "UPDATE myTable " + "\n";
strSQL = strSQL + "SET geo_position = geography::Point(latitude,longitude,4326) " + "\n";
strSQL = strSQL + "WHERE case_no = @case_no " + "\n";
OAParameter paraCaseNo = new OAParameter();
paraCaseNo.ParameterName = "@case_no";
paraCaseNo.Value = strCaseNo;
intAffectedRows = db.ExecuteNonQuery(strSQL, paraCaseNo);
db.SaveChanges();
}
基本上跟.net的sqlcommand去執行RAW SQL的寫法很類似拉~但是Telerik對於sql執行時間的Timeout設定支援很差,想要執行長時間的sql的話,還是自己寫SQLCommand + SQLConnection並設定Timeout屬性吧,這個應該不用示範了吧。。。