0
AutoMapperを初めて使用しようとしていて、いくつか問題があります。 私のコードは以下の通りですが、私は以下のエラーが出ます。誰かがモデルのリストをどのようにマップするかを示すことができますか?AutoMapperマッピングモデルリスト
cannot convert from 'System.Linq.IQueryable<AnonymousType#1>' to 'Entity.Product' C:\Users\Administrator\Projects\PC\trunk\PC\Controllers\AdminController.cs 37 100 PC
public class ProductViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public int UsersCount { get; set; }
}
var products = _repository.GetProducts(true).Select(p=> new
{
p.Id,
p.Name,
UsersCount = 0
});
Mapper.CreateMap<Product, ProductViewModel>();
ViewData["Products"] = Mapper.Map<IEnumerable<Product>, IEnumerable<ProductViewModel>>(products); //Error appears on products object
//Product domain model(linq2sql generated model)
public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private int _Id;
private bool _Active;
private System.Nullable<int> _Sort;
private System.Nullable<int> _Category;
private string _Name;
private int _ProductTypeId;
private decimal _Price;
private System.Nullable<int> _Months;
private System.Nullable<int> _Credits;
private string _Features;
private string _BlockReason;
private string _BuyUrl1;
private string _BuyUrl2;
private bool _UsersManager;
}
計算フィールドのUsersCountフィールドを作成する必要があります。上記の例では、私はUsersCount = 0を割り当てただけですが、実際のアプリではUsersを計算してUsersCountプロパティに割り当てる必要があります。多分私のデザインは間違っていますか?それを変更するには? – Tomas
私はそれが間違っているかどうかあなたに伝えることができるようにあなたのデザインは何か分かりません。このフィールドはどのようにして計算されますか?あなたのドメインモデルのどの情報に依存していますか?あなたの 'Product'ドメインモデルはどのように見えますか? –
私のデータベースは製品 - >ユーザーのように見えます。 GetProductsメソッドでlinqを使用してSQLにクエリを実行すると、製品のリストが表示されます。その後、特定の製品に割り当てられているユーザーの数をカウントする必要があります。だから私は新しいフィールドUsersCountを追加し、このフィールドにsqlクエリにlinqを追加してユーザーカウントを実行します。 – Tomas