问题标签 [mapster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
null - 当成员为 IEnumerable 时,有没有办法在使用 Mapster 进行映射期间忽略源中的所有空值
我在EF Core 3.1中使用带有DI的Mapster 5.3.1 ...我有一个问题..当两个成员都是IEnumerable并且都具有相同的结构时,有没有办法在映射期间忽略源成员中的所有空值。
var tSource = (IEnumerable) var tDestination = (IEnumerable)
_mapper.Map(tSource, tDestination)
如果 tSource 有一个空值,我不想在 tDestination 中使用该值。
我希望你们能帮助我。
谢谢
linq - 使用 Mapster 调整导航属性
我有一Post
堂课,User
里面有一个属性。当我尝试获取所有帖子时,我还想将其映射User
到一个UserDto
对象。
在内部进行调整Include
会引发此错误:
Include 中使用的 Lambda 表达式无效
.net - Mapster 编译时出现 AmbiguousMatchException
当我尝试编译 mapster 配置时,它会AmbiguousMatchException
在这个特定的映射中抛出一个:
并且异常不会告知什么是错误的。
在更新到 Mapster 5.0 之前,一切正常。
mapping - Mapster - 从基类映射后代类
课程:
代码:
如果您运行代码,您将看到 SourceType 和 DestType 不一样。我如何实现它们相同?Mapster 将部门映射为 Department 类(祖先)而不是 DepartmentA 类(后代)。
在此示例中,我知道 emp.Department 中有后代,但在我的应用程序中我不知道。所以这个问题的解决方案必须是通用的。
我试图在 AutoMapper 中解决这个问题。得到了同样的结果。正如@Prolog 在下面写的那样,AutoMapper 正在工作。我更新了主要代码。
如果有人在 Mapster 中解决了问题,我仍然很感兴趣。
mapster - Mapster 从 ExpandoObject 到 Dto - 如何防止在 Dto 中将缺少的键设置为 Null?
我有一个代表更新的对象:
此属性是 dto 的一部分,例如:
现在,当我映射时,不在源字典中的所有(其他)属性都设置为默认值。
c# - 使用 Mapster 将一个类属性映射到两个不同的类属性
我有 3 个名为 Employee、EmployeeTwo 和 EmployeeThree 的类,我想将 Employee 映射到 EmployeeTwo 并将 Employee 映射到 EmployeeThree。
以下是课程。我还尝试在 Employee Class 属性上定义 AdaptMember 属性,但它只定义了一个,我必须将它映射到两个不同的属性。
注意:我不能为 EmployeeTwo 和 EmployeeThree 类定义任何属性,因为它来自 API,并且可以重新生成。
任何帮助都非常感谢。
c# - Mapster,尝试映射到具有许多没有默认构造函数的类的字段并失败
我正在尝试学习 Mapster。我有这样的课
创建一个配置:
现在,如果我尝试 map 对象-everythink 都可以,但是如果我将第二个构造函数添加到Sub
类
Mapster throe 运行时异常:
我尝试阅读文档,关于ConstructUsing
andMapWith
这不是我需要的(或者我做错了什么)。我怎么能做到这一点?
c# - 如何使用 Mapster 映射 JsonPatchDocument?
我有我的模型:
还有我的 Dto:
我正在使用 Entity Framework 和 JsonPatchDocument 在我的 API 中进行 PATCH 操作,代码如下:
作为输出,我得到以下信息:
我知道问题出在这行代码中:
但我不知道如何更改它以正确地将其映射到所需的类型。你可以帮帮我吗?:)
我知道最后我可能应该再次从 DB 获取成员资格,映射它并返回它,而不是仅仅映射editedMembership,但在处理此映射问题后我会适应它。
c# - Mapster.Tool 无法生成映射器
Mapster.Tool 无法生成任何代码。
问题似乎是从 CosmosClient 派生的类 - 我从 nuget 包中获得。
我得到这个例外:
找不到库:Microsoft.Azure.Cosmos.Client
未处理的异常。System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型。
无法加载文件或程序集“Microsoft.Azure.Cosmos.Client,Version=3.16.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”。该系统找不到指定的文件。
在 System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
在 System.Reflection.RuntimeModule.GetTypes()
在 System.Reflection.Assembly.GetTypes()
在 Mapster.Tool.Extensions.Scan(CodeGenerationConfig config, Assembly assembly) 在 D 中: \git\Mapster\src\Mapster.Tool\Extensions.cs:第 177 行
位于 D:\git\Mapster\src\Mapster.Tool\Program.cs:第 123 行的 Mapster.Tool.Program.GenerateModels(ModelOptions opt)
在 CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
在 D:\git\Mapster\src\Mapster.Tool\Program 中的 Mapster.Tool.Program.Main(String[] args)。 cs:第 17 行
System.IO.FileNotFoundException:无法加载文件或程序集
“Microsoft.Azure.Cosmos.Client,Version=3.16.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”。该系统找不到指定的文件。
文件名:'Microsoft.Azure.Cosmos.Client,版本=3.16.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'
当我禁用 mapster 构建目标时,一切正常。
此外,Microsoft.Azure.Cosmos.Client.dll 存在于目标目录中。
Soooo ..我做错了什么?
我不明白为什么 mapster 无法加载该程序集。
似乎也没有办法让 mapster 忽略该类。
这是代码。
我的 csproj 文件: