看下微软MSDN的解释
Returns distinct elements from a sequence by using the default equality comparer to compare values.
你select出来的元素每一个显然不相等,怎么会只有一个值呢?
用group可以解决,大概如下:
from list in ……………… where ... group by list.ID into
或者实现下IEquatable,见MSDN
http://msdn.microsoft.com/en-us/library/bb348436.aspx
回过神来一想,不对啊,你给的是那个v_UserInfo类的定义,不是我要的v_UserInfo啊。
那个db.v_UserInfo肯定不是对应了v_UserInfo类型,如果真的就是那个类,无法使用from xxx in db.v_UserInfo的语法的,因为必须继承IEnumerable的类才能使用那个Linq查询。
我看到你的数据,只有前面2行是反复重复的,而不是所有数据重复,给我的感觉是这两行是人为进行了数据叠加。如果说在info查询后,数据已经是重复的,这就比较奇怪了,我因为很早就放弃Linq TO Sql了,因此没法帮你验证(效率低)。不过你的Linq语句的确没写正确,那个Distinct语句形同虚设啊,如果不是加在里面,放在外面的话,必须写明属性比较器,否则按引用地址比较唯一而不是各个属性。