변환 IEnumerable WCF를 다른 로컬 IEnumerable에 추가하십시오. 그게 가능하니? .net c# casting dapper model-view-controller

문제

WCF 서비스에서이 함수가 있습니다.

public IEnumerable<Product> ListProducts()
{
    return dal.RunDapper<Product>("listarProdutos");
}

Dapper로 proc을 실행하고이 클래스로 데이터를 매핑합니다 :

[DataContract]
public class Product
{
    [DataMember]
    public int PRODUCTID { get; set; }
    [DataMember]
    public string PRODUCTNAME { get; set; }
    [DataMember]
    public string COMPANYNAME { get; set; }
    [DataMember]
    public string CATEGORYNAME { get; set; }
    [DataMember]
    public decimal UNITPRICE { get; set; }
    [DataMember]
    public int UNITINSTOCK { get; set; }
}

내 로컬 모델 :

public IEnumerable<Product> ListarProdutos()
{
    var retorno = WCF.ListProducts();
    return retorno.Cast<Product>();
}

내 로컬 Product 클래스에는 동일한 속성이 있습니다.

public class Product
{
    public int PRODUCTID { get; set; }
    public string PRODUCTNAME { get; set; }
    public string COMPANYNAME { get; set; }
    public string CATEGORYNAME { get; set; }
    public decimal UNITPRICE { get; set; }
    public int UNITINSTOCK { get; set; }
}

이것은 내 컨트롤러입니다.

public ActionResult Index()
{
    ProductDB produtos = new ProductDB();
    var model = produtos.ListProducts();

    return View(model);
}

내보기 모델 :

<tr>
    <td>@Html.DisplayNameFor(model => model.PRODUCTNAME)</td>
    <td class="hidden-xs">@Html.DisplayNameFor(model => model.COMPANYNAME)</td>
    <td>@Html.DisplayNameFor(model => model.CATEGORYNAME)</td>
    <td class="hidden-xs">@Html.DisplayNameFor(model => model.UNITPRICE)</td>
    <td>@Html.DisplayNameFor(model => model.UNITINSTOCK)</td>
</tr>

이 오류가 발생합니다.

형식의 개체 캐스팅 할 수 없습니다 ModeloTemplate.NorthWindWCF.Product 입력 ModeloTemplate.Models.Product .

인기 답변

WCF 서비스 참조는 ModeloTemplate.NorthWindWCF.ProductProduct 유형을 만들었습니다. ModeloTemplate.Models.Product 로 유형을 정의했습니다 (로컬에서 말한대로). 이들은 서로 관련이없는 두 가지 유형이며 자동으로 앞뒤로 전송할 수 없습니다. AutoMapper를 확인하십시오.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow