ASP DropDownList的

时间:2015-05-10 21:13:48

标签: c# asp.net entity-framework data-binding

错误消息:

  

直接将数据绑定到商店查询(DbSet,DbQuery,DbSqlQuery)   不支持。而是使用数据填充DbSet,例如   在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";

1 个答案:

答案 0 :(得分:0)

您无法绑定查询,通常是IQueryable(至少不再是,不确定您是否可以过去),因此您需要绑定到某个本地集合。< / p>

var soilList = from SOTYPE in db.SOTYPEs
                       orderby SOTYPE.SOTYPE_DESC ascending
                       select SOTYPE.SOTYPE_DESC;

soilList表示将发送到数据库的查询,因此如果您在末尾添加ToList(),则会为查询创建结果的本地集合,您将能够绑定到那个。

请参阅:Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported