无法隐式转换类型错误

Can not implicitly convert type error

我正在使用 entity framework 访问数据库并尝试在产品 class 中使用我的产品模型 class。但有些如何获得转换类型错误。

错误:无法将类型 'SporLife.Product' 隐式转换为 'SporLife.Pages.Product'

这是我的 ManageProduct class

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 class

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

这里的问题是方法对象的 return 类型与您使用它的对象不匹配 :

Product product = model.GetProduct(id);//error appears here

您必须明确指定您希望它成为哪个对象:

SporLife.Product product = model.GetProduct(id);

与您的方法相同:

public SporLife.Product GetProduct(int id)

我以SporLife为例。如果你想要 SporLife.Pages 作为 return 类型,你也可以使用它。这里的事情是在两种情况下指定确切的 return 类型,以便它们匹配。

希望这对您有所帮助。

本质上有两种不同类型的 ProductSporLife.ProductSporLife.Pages.Productmodel.GetProduct(id) returns a 'SporLife.Product' 所以如果没问题,您需要更改调用代码以实现这一点。也许明确指定类型。

SporLife.Product product = model.GetProduct(id);//error appears here