Ich habe diese Funktion in einem WCF-Dienst:
public IEnumerable<Product> ListProducts()
{
return dal.RunDapper<Product>("listarProdutos");
}
Es wird einen Proc mit Dapper ausführen und Daten mit dieser Klasse zuordnen:
[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; }
}
In meinem lokalen Modell:
public IEnumerable<Product> ListarProdutos()
{
var retorno = WCF.ListProducts();
return retorno.Cast<Product>();
}
und meine lokale Produktklasse hat dieselben Eigenschaften:
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; }
}
Das ist mein Controller:
public ActionResult Index()
{
ProductDB produtos = new ProductDB();
var model = produtos.ListProducts();
return View(model);
}
Mein Ansichtsmodell:
<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>
Ich erhalte diesen Fehler:
Objekt des Typs
ModeloTemplate.NorthWindWCF.Product
inModeloTemplate.Models.Product
.
Der WCF-Dienstverweis hat einen Typ für Product
als ModeloTemplate.NorthWindWCF.Product
. Sie haben einen Typ (wie Sie ModeloTemplate.Models.Product
gesagt haben) als ModeloTemplate.Models.Product
. Dies sind zwei verschiedene, nicht verwandte Typen, die nicht automatisch hin- und hergeworfen werden können. Überprüfen Sie AutoMapper .