我的代碼是:簡單的Linq問題:如何選擇多個列?
List<Benutzer> users = (from a in dc.Benutzer
select a).ToList();
我需要這個代碼,但我只希望在「Benutzer」 - 表來選擇20列第3。 那是什麼語法?
我的代碼是:簡單的Linq問題:如何選擇多個列?
List<Benutzer> users = (from a in dc.Benutzer
select a).ToList();
我需要這個代碼,但我只希望在「Benutzer」 - 表來選擇20列第3。 那是什麼語法?
這裏有一個查詢表達式:
var users = (from a in dc.Benutzer
select new { a.Name, a.Age, a.Occupation }).ToList();
或者用點表示:
var users = dc.Benutzer.Select(a => new { a.Name, a.Age, a.Occupation })
.ToList();
注意它返回一個anonymous type的列表,而不是Benutzer
實例。就個人而言,我更喜歡這種方法來創建部分填充的實例列表,因爲任何處理部分實例的人都需要檢查它們是否來自於找出真正存在的內容。
編輯:如果你真的想建立的Benutzer
實例,LINQ是不是讓你在查詢中這樣做(我不知道爲什麼)你總是可以做:
List<Benutzer> users = dc.Benutzer
.Select(a => new { a.Name, a.Age, a.Occupation })
.AsEnumerable() // Forces the rest of the query to execute locally
.Select(x => new Benutzer { Name = x.Name, Age = x.Age,
Occupation = x.Occupation })
.ToList();
即使用匿名類型就像一個DTO。請注意,返回的Benutzer
對象不會與上下文關聯。
List<Benutzer> users = (from a in dc.Benutzer
select new Benutzer{
myCol= a.myCol,
myCol2 = a.myCol2
}).ToList();
我想這就是你想要的,如果你想做出同樣的列表。但是,假設您設置的屬性具有公開設置者。
嘗試:
var list = (from a in dc.Benutzer select new {a.Col1, a.Col2, a.Col3}).ToList();
,但現在你有匿名對象不是Benutzer對象列表。
You have type'Benutzer'?曾考慮過使用本地化的C#? 'Liste benutzer =(aus a in dc.Benutzerwählea).ZuListe();';) –
2009-10-09 09:41:23