簡體   English   中英

使用實體framework4執行自定義sql

[英]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);

然后只需使用EntityConnectionEntityCommand類來執行命令並以與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.

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