2010-07-22 57 views
2

假設我有以下Linq 2 SQL命令;返回鏈接中的對象並修剪一個字段

ItemsRepository.All().Where(r => r.type == "myType"); 

假設它返回一個對象集合;

  • ID
  • 標題
  • 描述

有沒有辦法返回整個對象和裝飾的描述第1 200個CHRS如果有描述中有200多個字符?

或者我應該得到的收集,然後通過他們的迭代?

感謝

回答

1

你可以使用選擇預計,到一個新的集合。所以你必須 -

var x = ItemsRepository.All().Where(r => r.type == "myType"); 

var y = x.Select(z => new { z.id, z.title, z.description.Substring(0,200), z.type }); 

如果你不想投射到一個匿名類型,只需指定你要投射的類型 -

var y = x.Select(z => new MyNewType { ID = z.id, Title = z.title, Description = z.description.Substring(0,200), z.type }); 
+0

+1,但我寧願不因爲這個對象相當大。但我意識到這可能需要這樣。 – griegs 2010-07-22 10:47:30

+0

那麼當你枚舉y並生成sql時,linq-to-sql將生成SQL以僅檢索你要求的內容。因此它只會檢索您使用Select運算符指定的字段,並且子字符串(0,200)將被轉換爲等效的SQL。 – 2010-07-22 11:31:02

+0

是的,我得到了所有我只是希望有一種方法來修剪數據。我選擇了trimmedText作爲屬性的部分視圖,所以我在需要的地方使用。感謝您的幫助 – griegs 2010-07-23 01:19:45