C# ADO.Net数据绑定到ASP DropDownList时出错
错误消息: 直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)的数据是 不支持。而是用数据填充数据库集,例如 在DbSet上调用Load,然后绑定到本地数据。用于WPF绑定 到DbSet.Local。对于WinForms,绑定到DbSet.Local.ToBindingList() VS2012有什么变化吗?我以前使用过同样的策略吗 检索数据的数据层代码:C# ADO.Net数据绑定到ASP DropDownList时出错,c#,asp.net,entity-framework,data-binding,C#,Asp.net,Entity Framework,Data Binding,错误消息: 直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)的数据是 不支持。而是用数据填充数据库集,例如 在DbSet上调用Load,然后绑定到本地数据。用于WPF绑定 到DbSet.Local。对于WinForms,绑定到DbSet.Local.ToBindingList() VS2012有什么变化吗?我以前使用过同样的策略吗 检索数据的数据层代码: namespace DataLibrary { public class DLgetMasterData
namespace DataLibrary
{
public class DLgetMasterData
{
POLLINATORSEntities db = new POLLINATORSEntities();
public IEnumerable<string> getSoil()
{
var soilList = from SOTYPE in db.SOTYPEs
orderby SOTYPE.SOTYPE_DESC ascending
select SOTYPE.SOTYPE_DESC;
return soilList;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
BLgetMasterData obj = new BLgetMasterData();
var soilList = obj.getSoil();
Soil.DataSource = soilList;
Soil.DataBind();
Soil.Items.Insert(0, "Any");
Soil.SelectedValue = "Any";
您无法绑定到查询,而查询通常是一些
IQueryable
(至少现在不是了,不确定过去是否可以),因此您需要绑定到一些本地集合
soilList
表示将发送到数据库的查询,因此如果在末尾添加ToList()
,将为查询创建结果的本地集合,并且您将能够绑定到该集合
见:
var soilList = from SOTYPE in db.SOTYPEs
orderby SOTYPE.SOTYPE_DESC ascending
select SOTYPE.SOTYPE_DESC;