我有一个包含多个字段的表,我只需要一个字段。该表称为ZipCompare。我通常使用IQueryable 作为linq查询的返回类型。但是对于以下代码,出现错误:“无法将类型System.Linq.IQueryable<AnonymousType#1>隐式转换为ZipCompare。那我应该使用哪种返回类型?我使用此函数来填充dropdownlist控件我的代码是:public IQueryable<ZipCompare> GetStates() { VettingDataContext dc = new VettingDataContext(_connString); dc.DeferredLoadingEnabled = true; var query = (from c in dc.ZipCompares select new { States = c.State }).Distinct(); return query; }前端代码:ddl_BilState.DataSource = zipDAL.GetStates(); ddl_BilState.DataTextField = "States"; ddl_BilState.DataValueField = "States"; ddl_BilState.DataBind();这是一个.net Web应用程序,我用c#编写。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 查看您的查询:var query = (from c in dc.ZipCompares select new { States = c.State }).Distinct();那不是选择ZipCompare,而是选择匿名类型。目前尚不清楚您要做什么,但如果要返回IQueryable<ZipCompare>,则需要选择select子句。如果您不想返回ZipCompare ...那么,在这种情况下,您似乎不需要匿名类型。只需使用:var query = (from c in dc.ZipCompares select c.State).Distinct();或更简洁地说:return dc.ZipCompares.Select(c => c.State).Distinct();然后,您更改数据绑定以绑定到值本身(也许使用“。”作为字段?或者也许是空字符串?不确定)。 (adsbygoogle = window.adsbygoogle || []).push({}); 07-28 10:02