无法隐式转换类型错误

时间:2015-05-23 04:48:49

标签: c# entity-framework-4

我正在使用实体框架来访问数据库并尝试在产品类中使用我的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;
            }
        }}}

2 个答案:

答案 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)

基本上有两种不同类型的ProductSporLife.ProductSporLife.Pages.Productmodel.GetProduct(id)会返回一个' SporLife.Product'所以,如果可以,你需要更改调用代码以期望它。也许明确指定类型。

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