2010-07-22 61 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