2012-05-24 40 views
0

我需要从使用LINQ的表中获取不同的行值。我使用的查询是在LINQ中获取不同的行

var results = (from statename in dsobject.dbo_statetable select statename).Distinct(); 

它给予名为“dbo_statetable”的表的所有行,但我只需要不同的状态名。什么应该是实现这个查询?

其SQL等价物是select distinct statename from dbo_statetable

+0

你想选择什么柱?这给你所有不同的行对象 – cordialgerm

+0

@pickles:它看起来像他正在试图做的SQL''从dbo_statetable'选择不同的状态名的等价物,除了在LINQ中。所以他试图选择的列名是'statename'。 –

+0

@MarkByers。是的,你是正确的,我认为“从州名”是指列,现在得到它。 – gout

回答

1

您需要指定属性:

var results = (from x in dsobject.dbo_statetable select x.Statename).Distinct(); 
//              ^^^^^^^^^^ 

from后的变量不指定列。它就像SQL中的表别名。你的LINQ语句大致相当于这个SQL:

SELECT DISTINCT * FROM dbo_statetable AS statename 
0

dsobject.dbo_statetable.Select(s => s.statename).Distinct()