Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ADO.Net数据绑定到ASP DropDownList时出错_C#_Asp.net_Entity Framework_Data Binding - Fatal编程技术网

C# ADO.Net数据绑定到ASP DropDownList时出错

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

错误消息:

直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)的数据是 不支持。而是用数据填充数据库集,例如 在DbSet上调用Load,然后绑定到本地数据。用于WPF绑定 到DbSet.Local。对于WinForms,绑定到DbSet.Local.ToBindingList()

VS2012有什么变化吗?我以前使用过同样的策略吗

检索数据的数据层代码:

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;