Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在具有简单属性的实体模型和具有列表的viewmodel之间映射<;赛义德酒店>;?_C#_Automapper - Fatal编程技术网

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  
                };