我有一個WCF/REST Web服務,我正在考慮使用Linq to SQL來從中返回數據庫信息。在REST/WCF服務中將數據集從LINQ返回給SQL
這是很容易做到的基本查詢對錶和返回行,例如:
[WebGet(UriTemplate = "")]
public List<User> GetUsers()
{
List<User> ret = new List<User>(); ;
using (MyDataContext context = new MyDataContext())
{
var userResults = from u in context.Users select u;
ret = userResults.ToList<User>();
}
return ret;
}
但是,如果我想返回多個表中的數據是什麼,或者不完全表的模式匹配?我無法弄清楚如何從該查詢返回的結果,例如:
var userResults = from u in context.Users
select new { u.userID, u.userName, u.userType,
u.Person.personFirstname, u.Person.personLastname };
顯然,導致行集不堅持「用戶」的模式,所以我不能只是轉換到一個列表用戶對象。
我嘗試在我的對象模型中創建一個與結果集相關的新實體,但它不想執行轉換。
我錯過了什麼?
編輯:相關問題:存儲過程返回的結果如何?同樣的問題,將它們打包以便通過服務返回的最佳方式是什麼?
這就是實體框架,而不是直接Linq To SQL。我儘量避免使用實體框架。 – BDW
哦,我明白了。你可以創建一個具體類,而不是像m4tt1mus建議的匿名類。 –
但是,讓我們說我使用實體框架。我知道複雜類型如何與存儲過程協同工作,這不是問題。如何將linq映射到我上面的複雜類型的sql查詢?沒有什麼我正在努力工作。 – BDW