C# 如何在具有简单属性的实体模型和具有列表的viewmodel之间映射<;赛义德酒店>;?
如何映射C# 如何在具有简单属性的实体模型和具有列表的viewmodel之间映射<;赛义德酒店>;?,c#,automapper,C#,Automapper,如何映射列表: 。。。此viewmodel(实体类属性Title不应映射到viewmodel属性Title,而应映射到类别。Title): 这是我以前的映射,它直接映射到ViewModelProductCategory: CreateMap<ProductCategory, ViewModelProductCategory>() .ForMember(dst => dst.Products, opt => opt.MapFrom(
列表
:
。。。此viewmodel(实体类属性Title
不应映射到viewmodel属性Title
,而应映射到类别。Title
):
这是我以前的映射,它直接映射到ViewModelProductCategory
:
CreateMap<ProductCategory, ViewModelProductCategory>()
.ForMember(dst => dst.Products, opt => opt.MapFrom(
src => src.ProductInCategory.Select(pc => pc.Product)));
CreateMap()
.ForMember(dst=>dst.Products,opt=>opt.MapFrom(
src=>src.ProductInCategory.Select(pc=>pc.Product));
在这里,我通过每个类别中的
ProductInCategory
访问了产品。我仍然需要它,但是类别现在将在列表中如果您没有正确回答问题,您希望将单个ProductCategory
传递给Automapper,并在categories
集合中获得一个带有单个条目的ViewModelProductCategories
1) 定义映射ProductCategory
->ViewModelProductCategory
CreateMap<ProductCategory, ViewModelProductCategory>();
这假定为静态Automapper实例配置了映射ProductCategory
->ViewModelProductCategory
。请注意,如果Automapper知道如何映射元素,他将自动创建集合
用法:
var cat = new ProductCategory();
ViewModelProductCategories vm = Mapper.Map<ViewModelProductCategories>(cat);
var cat=new ProductCategory();
ViewModelProductCategories vm=Mapper.Map(cat);
如果您没有正确回答问题,您希望将单个ProductCategory
传递给Automapper,并在Categories
集合中获得一个带有单个条目的ViewModelProductCategories
1) 定义映射ProductCategory
->ViewModelProductCategory
CreateMap<ProductCategory, ViewModelProductCategory>();
这假定为静态Automapper实例配置了映射ProductCategory
->ViewModelProductCategory
。请注意,如果Automapper知道如何映射元素,他将自动创建集合
用法:
var cat = new ProductCategory();
ViewModelProductCategories vm = Mapper.Map<ViewModelProductCategories>(cat);
var cat=new ProductCategory();
ViewModelProductCategories vm=Mapper.Map(cat);
您可以使用AutoMapper,也可以将项目
/选择
到视图中
var productCategories = context.Where(<my filter>)
.OrderBy(x => x.SortOrder)
.Select(x => new ViewModelProductCategory()
{
Id = x.Id,
Title = x.Title,
SortOrder = x.SortOrder,
ParentId = x.ParentId
});
var viewModelProductCategories = new ViewModelProductCategories()
{
Categories = productCategories
...
// other shenanigans here
};
var-productCategories=context.Where()
.OrderBy(x=>x.SortOrder)
.Select(x=>newviewmodelProductCategory()
{
Id=x.Id,
Title=x.Title,
SortOrder=x.SortOrder,
ParentId=x.ParentId
});
var viewModelProductCategories=新的viewModelProductCategories()
{
类别=产品类别
...
//这里还有其他恶作剧
};
您可以使用AutoMapper,也可以将项目
/选择
到视图中
var productCategories = context.Where(<my filter>)
.OrderBy(x => x.SortOrder)
.Select(x => new ViewModelProductCategory()
{
Id = x.Id,
Title = x.Title,
SortOrder = x.SortOrder,
ParentId = x.ParentId
});
var viewModelProductCategories = new ViewModelProductCategories()
{
Categories = productCategories
...
// other shenanigans here
};
var-productCategories=context.Where()
.OrderBy(x=>x.SortOrder)
.Select(x=>newviewmodelProductCategory()
{
Id=x.Id,
Title=x.Title,
SortOrder=x.SortOrder,
ParentId=x.ParentId
});
var viewModelProductCategories=新的viewModelProductCategories()
{
类别=产品类别
...
//这里还有其他恶作剧
};
您想从哪里映射?从一个班级到名单上的一个项目?@Icepickle哈哈,我明白了!我可以使用列表从何处映射?从一个班级到名单上的一个项目?@Icepickle哈哈,我明白了!我可以使用列表我甚至不确定我是否正确理解了我的问题。我想在列表
和ViewModelProductCategories
中的属性类别
之间进行映射,并且我还需要列表旁边的一些附加属性。我将更新我的问题以显示我需要的所有属性。很抱歉,我选择了另一种解决整个问题的方法。谢谢你抽出时间!我甚至不确定我是否正确理解了我的问题。我想在列表
和ViewModelProductCategories
中的属性类别
之间进行映射,并且我还需要列表旁边的一些附加属性。我将更新我的问题以显示我需要的所有属性。很抱歉,我选择了另一种解决整个问题的方法。谢谢你抽出时间!
var productCategories = context.Where(<my filter>)
.OrderBy(x => x.SortOrder)
.Select(x => new ViewModelProductCategory()
{
Id = x.Id,
Title = x.Title,
SortOrder = x.SortOrder,
ParentId = x.ParentId
});
var viewModelProductCategories = new ViewModelProductCategories()
{
Categories = productCategories
...
// other shenanigans here
};