考慮下面的例子LINQ到實體查詢實體框架如何管理將查詢結果映射到匿名類型?
from history in entities.foreignuserhistory
select new { history.displayname, login=history.username, history.foreignuserid }
ToTraceString()
返回字符串的樣子:
SELECT "Extent1"."foreignuserid" AS "foreignuserid",
"Extent1"."displayname" AS "displayname",
"Extent1"."username" AS "username"
FROM "integration"."foreignuserhistory" AS "Extent1"
,我的問題是,列有不同的順序查詢,並沒有考慮別名像login
在這個例子中。實體框架爲匿名類型存儲映射信息的位置?
背景:我將開發插入與選擇操作使用LINQ到實體進行批量操作。
更新: 插入與選擇不是那麼難,除了一個未知的列屬性映射算法。可以使用元數據獲取目標ObjectSet
的表和列名稱,編譯INSERT INTO tableName (column_name1, …)
sql語句字符串,然後附加一些ObjectQuery.ToTraceString
SELECT語句。然後使用((EntityConnection)ObjectContext.Connection).StoreConnection
創建一個DbCommand
,其結果文本爲((EntityConnection)ObjectContext.Connection).StoreConnection
,填充命令參數ObjectQuery
。所以問題是在插入和選擇的記錄中找到匹配的列順序。
在這方面的任何更新? EF似乎有所改變,我做了調整,但它沒有搞清楚所有的列順序=( – Maslow