Linq To Sql 返回值长度而不是值

CSh*_*Dev 2 c# linq-to-sql

我今天刚刚开始自学 Linq to SQL。我对 linq 几乎一无所知。话虽这么说,我有一个查询想从数据库返回一个名称。它是数据库中的 varchar

var query = from a in FRESH.Customers
            select a.CUSTOMER_NAME;

dataGridView1.DataSource = query;
Run Code Online (Sandbox Code Playgroud)

这会产生一个带有名为“Length”的列的网格视图,并显示每个名称的长度。如果我将查询更改为select a一切都显示正常。我在这里做错了什么?

D S*_*ley 5

默认情况DataGridView下,列表中该类型的所有属性都会显示为列。string由于您的查询返回s的集合,并且a 的唯一一个“属性”stringLength将其显示为一列。

尝试更改为

var query = from a in FRESH.Customers
            select new {Name = a.CUSTOMER_NAME};
Run Code Online (Sandbox Code Playgroud)

1从技术上讲,索引器Chars是一个“属性”,但DataGridView必须足够聪明,不能将索引器用作列。