gpt4 book ai didi

c# - 无法从 'P.CoffeeShopDBEntities' 转换为 'System.Data.Objects.ObjectContext'

转载 作者:行者123 更新时间:2023-11-30 17:43:36 34 4
gpt4 key购买 nike

我尝试在 Visual Studio 2013 (c#) 中重新创建一段代码(我在视频中看到过),该代码是用 VS2008 (c#) 编写的:我已经尝试了 EF 6 和 EF 5 版本选项相同的结果..搜索网络和 MSDN 没有运气。

这是我的代码,其中的注释显示了我遇到的错误:


 private CoffeeShopDBEntities cse = new CoffeeShopDBEntities();

private void AddProductsToTabbedPanel()
{

// using (CoffeeShopDBEntities context = new CoffeeShopDBEntities())
//--found this on msdn..got rid of old but end up w/2 new errors see below
{
//the foreach code below goes here
}


foreach(TabPage tp in tabControl1.TabPages)
{

ObjectQuery<tblProduct> filteredProduct = new ObjectQuery<tblProduct>
("SELECT VALUE P FROM tblProducts AS P", cse);

//when 'context' used 1)possible mistaken empty statment
//2)the name 'context' doesnt exist in the current context

//when 'cse'used :
//Error 1 The best overloaded method match for 'System.Data.Objects.ObjectQuery<P.tblProduct>.ObjectQuery(string, System.Data.Objects.ObjectContext)' has some invalid arguments
//Error 2 Argument 2: cannot convert from 'P.CoffeeShopDBEntities' to 'System.Data.Objects.ObjectContext'

foreach (tblProduct tprod in filteredProduct)
{
Button b = new Button();
b.Text = tprod.Description;
tp.Controls.Add(b);
}
}
}

我在 Stack Overflow 上发现了一个类似的问题,回复说这是一个语法错误,但没有指出位置。

最佳答案

您收到错误是因为 ObjectQuery 正在寻找 EF 4.0 及更低版本附带的 ObjectContext。 CoffeeShopDBEntities 是任何 EF 4.1 及更高版本都附带的 DBContext 类型。

我建议将您的查询更改为:

List<tblProduct> filteredProducts = cse.tblProducts.ToList();

如果您想了解有关 ObjectContext 与 DBContext 的更多信息,可以查看此链接:

http://www.c-sharpcorner.com/UploadFile/ff2f08/objectcontext-vs-dbcontext/

关于c# - 无法从 'P.CoffeeShopDBEntities' 转换为 'System.Data.Objects.ObjectContext',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30699475/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com