错误消息:
直接将数据绑定到商店查询(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";
答案 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