我如何在 ICollation<> 字段中使用 AutoMapper
how do i use AutoMapper in ICollation<> Fields
当我使用 AutoMapper 映射我的 ViewModel 并获取所有新闻时,为我抛出错误。
错误...
无法映射 Mosque.Core.ViewModels.CategoryViewModel 上的以下 属性:
类别
添加自定义映射表达式、忽略、添加自定义解析器或修改目标类型 Mosque.Core.ViewModels.CategoryViewModel.
请帮帮我,谢谢
//型号
public class News
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<Category> Categories { get; set; }
public virtual User User { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<News> News { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<News> News { get; set; }
}
//视图模型
public class NewsViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<CategoryViewModel> Categories { get; set; }
public virtual UserViewModel User { get; set; }
}
public class CategoryViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<NewsViewModel> News { get; set; }
}
public class UserViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<NewsViewModel> News { get; set; }
}
如何使用 select 所有新闻?
--更新1--
我在项目中使用了洋葱架构,我在服务层安装了 AutoMapper,我想从存储库中获取所有新闻并填充到 ViewModels 并传递给 UI。
我在服务层的代码是...
public List<NewsViewModel> GetAll()
{
Mapper.CreateMap<News, NewsViewModel>()
.ForMember(dest => dest.Categories, src => src.MapFrom(p => p.Categories))
.ForMember(dest => dest.User, src => src.MapFrom(p => p.User));
Mapper.AssertConfigurationIsValid();
var viewModels = new List<NewsViewModel>();
foreach (var item in _newsRepository.GetAll())
{
var viewModel = Mapper.Map<News, NewsViewModel>(item);
viewModels.Add(viewModel);
}
return viewModels;
}
您似乎没有为 Catagory
和 User
创建地图。
添加以下地图:
Mapper.CreateMap<User, UserViewModel>();
Mapper.CreateMap<Category, CategoryViewModel>();
顺便问一下,为什么要在 GetAll
方法中创建地图?您可以创建一次地图,通常是在应用程序启动时。
当我使用 AutoMapper 映射我的 ViewModel 并获取所有新闻时,为我抛出错误。
错误... 无法映射 Mosque.Core.ViewModels.CategoryViewModel 上的以下 属性: 类别 添加自定义映射表达式、忽略、添加自定义解析器或修改目标类型 Mosque.Core.ViewModels.CategoryViewModel.
请帮帮我,谢谢
//型号
public class News
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<Category> Categories { get; set; }
public virtual User User { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<News> News { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<News> News { get; set; }
}
//视图模型
public class NewsViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<CategoryViewModel> Categories { get; set; }
public virtual UserViewModel User { get; set; }
}
public class CategoryViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public virtual ICollection<NewsViewModel> News { get; set; }
}
public class UserViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<NewsViewModel> News { get; set; }
}
如何使用 select 所有新闻?
--更新1--
我在项目中使用了洋葱架构,我在服务层安装了 AutoMapper,我想从存储库中获取所有新闻并填充到 ViewModels 并传递给 UI。 我在服务层的代码是...
public List<NewsViewModel> GetAll()
{
Mapper.CreateMap<News, NewsViewModel>()
.ForMember(dest => dest.Categories, src => src.MapFrom(p => p.Categories))
.ForMember(dest => dest.User, src => src.MapFrom(p => p.User));
Mapper.AssertConfigurationIsValid();
var viewModels = new List<NewsViewModel>();
foreach (var item in _newsRepository.GetAll())
{
var viewModel = Mapper.Map<News, NewsViewModel>(item);
viewModels.Add(viewModel);
}
return viewModels;
}
您似乎没有为 Catagory
和 User
创建地图。
添加以下地图:
Mapper.CreateMap<User, UserViewModel>();
Mapper.CreateMap<Category, CategoryViewModel>();
顺便问一下,为什么要在 GetAll
方法中创建地图?您可以创建一次地图,通常是在应用程序启动时。