[英]execute custom sql with entity framework4
我必須從數據庫接收特定於用戶的工作人員。
所有用戶的過濾器都是不同的,所以必須將所有訂單發送到英國,其他所有訂單都運送到其他5個國家,一個完成所有高價值的商品,一個包含包含> 10個商品的訂單等。
那么,我想出了這個想法(如果你有一個更好的想法就拍它!)
我為每個用戶創建一個視圖,所有視圖返回相同的數據,但過濾器是不同的。
在ado.net中我會做這樣的事情:
string sql = "select * from vwWorkOrders" + userName;
[rest of the ado.net here]
但現在我正在使用ef4,我想知道這種代碼的等價物是什么。
您可以使用ExecuteStoreQuery方法,如以下示例所示:
context.ExecuteStoreQuery<vwWorkOrder>(sql);
此方法允許您執行存儲SQL並獲取強類型結果。
如果您需要傳遞一些參數,只需在ExecuteStoreQuery的調用中傳遞必要的ObjectParameter實例。
您可以使用eSQL,它可以讓您的查詢更加靈活。 您可以預先下載LinqPad來玩它。
// whereClause is a string
string query = string.Format("select * from ObjectContext.vwWorkOrders where {0}", whereClause);
然后只需使用EntityConnection
和EntityCommand
類來執行命令並以與ADO.NET完全不同的方式循環結果。
編輯:我剛剛看到你的評論; 我認為你的例子中有一個拼寫錯誤。 您正在嘗試實現的更合適的代碼段:
// userName is a string, ie "Michel"
string query = string.Format("select * from ObjectContext.vwWorkOrders{0}", userName);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.