【问题标题】:ADO.Net Data Binding Error to ASP DropDownListASP DropDownList 的 ADO.Net 数据绑定错误
【发布时间】:2015-05-10 21:13:48
【问题描述】:

错误信息:

数据直接绑定到存储查询(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;
        }

UI 中的页面隐藏代码:

   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";

【问题讨论】:

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


    【解决方案1】:

    你不能绑定到一个查询,通常是一些IQueryable(至少现在不是了,不确定你过去是否可以),所以你需要绑定到一些本地集合。

    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

    【讨论】:

      猜你喜欢
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      相关资源
      最近更新 更多