【发布时间】:2015-11-09 19:36:39
【问题描述】:
ObjectQuery 方法出现错误,有人可以帮忙吗?
private void AddProductsToTabbedPanel()
{
foreach (TabPage tp in tabControl1.TabPages )
{
ObjectQuery<TblProduct> filteredProduct = new ObjectQuery<TblProduct>("Select value p from TblProduct as P", csdbe);
foreach (TblProduct tpro in filteredProduct)
{
Button btn = new Button();
btn.Text = tpro.Description;
tp.Controls.Add(btn);
}
}
}
我的逻辑是它根据 TblProduct 的内容在控制选项卡中添加按钮
但我得到了一个错误:
参数 2:无法从 'Coffee_Shop.CoffeeShopDatabaseEntities' 到 'System.Data.Entity.Core.Objects.ObjectContext'
最好的重载方法匹配 'System.Data.Entity.Core.Objects.ObjectQuery.ObjectQuery(字符串, System.Data.Entity.Core.Objects.ObjectContext)' 有一些无效 论据
【问题讨论】:
-
csdbe是什么类型? -
很可能您正在使用面向
DbContext的方法(csdbe源自DbContext- 不是ObjectContext- 对吧?),这真的没有'不再支持ObjectQuery。这是非常旧的 EF 代码 - 您应该将其升级到更新的方法 -
最近的方法有链接吗?如果你有这对我有很大帮助。再次感谢您的回复。
-
为什么使用
ObjectQuery和查询字符串?这可能有充分的理由,但如果你可以做到这一点,那就更好了。如果没有,我想知道您是否知道ObjectQuery产生 tracked 实体,而较新的DbContext方法如SqlQuery不会。
标签: c# entity-framework-6.1 objectquery