我正在使用实体框架来访问数据库并尝试在产品类中使用我的productModel类。但有些如何获得转换类型错误。
错误:无法将“SporLife.Product”类型隐式转换为“SporLife.Pages.Product”
这是我的ManageProduct类
namespace SporLife.Pages.Management
{
public partial class ManageProduct : System.Web.UI.Page
{
private void FillPage(int id)
{
//set selected product from DB
ProductModel model = new ProductModel();
Product product = model.GetProduct(id);//error appears here
//Fill textBoxes
txtDescription.Text = product.Description;
txtName.Text = product.Name;
txtPrice.Text = product.Price.ToString();
}}}
这是我的ProductModel类
namespace SporLife.Models
{
public class ProductModel
{
public Product GetProduct(int id)
{
try
{
using (SporLifeDBEntities2 db = new SporLifeDBEntities2())
{
Product product = db.Products.First(i => i.ID == id);
return product;
}
}
catch (Exception e)
{
return null;
}
}}}
答案 0 :(得分:0)
这里的问题是方法对象的return
类型与您使用它的对象不匹配:
Product product = model.GetProduct(id);//error appears here
您必须明确指定您想要的对象:
SporLife.Product product = model.GetProduct(id);
和您的方法相同:
public SporLife.Product GetProduct(int id)
我以SporLife
为例。如果您希望SporLife.Pages
作为返回类型,那么您也可以使用它。这里的事情是在两种情况下指定确切的返回类型,以便它们匹配。
希望这有帮助。
答案 1 :(得分:0)
基本上有两种不同类型的Product
,SporLife.Product
和SporLife.Pages.Product
。 model.GetProduct(id)
会返回一个' SporLife.Product'所以,如果可以,你需要更改调用代码以期望它。也许明确指定类型。
SporLife.Product product = model.GetProduct(id);//error appears here