我已經建立了以下LINQ查詢LINQ'select new'做什麼?
var activeMembers = from m in context.py3_membershipSet
join c in context.ContactSet on m.py3_Member.Id equals c.ContactId
where m.statuscode.Value == 1
orderby m.py3_name
select m;
但因爲我已經看到格式化爲這樣一個例子:
var contacts =
(
from c in xrm.ContactSet
join a in xrm.AccountSet on c.ParentCustomerId.Id equals a.Id
where a.Name == "Acme Pty Ltd"
select new
{
Name = c.FullName,
DOB = c.BirthDate,
Gender = (c.FormattedValues.Contains("gendercode") ? c.FormattedValues["gendercode"] : "Ambiguous")
}
);
(我意識到這是一組不同的數據)什麼的在這種情況下包含'選擇新'實際上是做什麼的?
它比第一個代碼塊中的示例有什麼好處?
我意識到有些人可能會發現這是一個乏味的問題,但我想學習LINQ並需要快速學習它。但我也不想運行一些東西 - 我不完全瞭解 - 在客戶端上運行CRM
因此,基本上,第二個查詢將結果限制爲已知名稱的已定義組,而不是未定義的一組x字段(如第一個)? – 2013-04-29 20:24:10
是的,沒有。第一組中的x字段仍然是「已知的」(至少是編譯器)。你可以在IDE中看到這個,輸入'activeMembers.FirstOrDefault()。',可用的字段就會彈出。第二種選擇只是讓您更多地控制進入匿名類型的內容,字段的名稱,並允許您在字段上執行計算。 – Kittoes0124 2013-04-29 20:45:01
非常徹底。爲你+1好,先生。 – 2013-04-30 06:06:11