问题标签 [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.
mapster - 具有 Parent 和 ChildCollection“互惠”导航属性的 Mapster
所以我有“实体”和“dtos”。
部门有 N 个雇员 雇员有 1 个(父)部门。
现在我对属性名称没有偏差。
我的 EFCore“查询”正在获取包含(子)员工的所有部门。
我更喜欢将我的“映射”代码隔离到接口和具体。我的具体将注入 Mapster 依赖项。
// 实体
Dtos:
和 CustomerMapper 接口和具体
所以在我的 EF 获取所有部门,包括员工电话后,我有一个充分的水分
在我的处置。
但是当它通过转换/映射代码时......我得到一个“堆栈溢出”异常。
我很确定我知道为什么。它是“ParentDepartment”的 Employee 属性......也就是孩子的“互惠”属性。
对于 Newtonsoft,“修复”之一通常是这个
Mapster 是否有处理这种情况的配置?
以下是我的 IoC 注册尝试.......我已经尝试过,但速度很快。
虽然您可以猜到,但我的 EFCore 代码如下所示:
c# - Mapster.Tool 使用 codegen 生成映射器而不是 DTO
我可以使用 Mapster.Tool 生成 Mappers 而不生成我要映射到的类吗?我有一个典型的域对象往返 DTO 场景,但这里的示例代码
https://github.com/MapsterMapper/Mapster/tree/master/src/Sample.CodeGen
和这里的文档
https://github.com/MapsterMapper/Mapster/wiki/Mapster.Tool
两者都专注于从域对象生成 DTO,通过使用属性注释它们或使用配置。有创建特定于 CRU 的 DTO 的配置,但我仍然宁愿创建自己的 DTO,但不必创建自己的映射。
mapster - CodeGen 在第一次构建时创建空映射器文件
[AdaptTo("[name]Dto"), GenerateMapper]
当我用一切正常来装饰我的域类时,但是当我使用时:
它生成与属性相同的 dto 类,但映射器类为空:
我想念什么?
更新
所以我遇到的问题不在于属性与 ICodeGenerationRegister 实现,而是我必须运行构建两次的事实。它第一次生成一个空的映射器类,在第二次构建时,我得到了生成的扩展方法。
这是我的项目配置
Mapster 工具版本 8.0.1
blazor - Mapster 和 Blazor
我想在我的 Blazor 项目中插入和使用 Mapster。我找不到关于如何注册映射并将它们注入我的应用程序的不同层的良好参考。
有谁知道我该如何实现?
谢谢
c# - 在 Mapster 中更改展平约定
我通常需要为 Mapster 做的唯一配置如下:-
如果我的父 id 字段刚刚被称为“Id”,我认为 mapster 只会使用默认配置将其展平,并且我不需要 TypeAdapterConfig。如何更改全局配置规则以使 Mapster 自动将 Parent.ParentSomething 展平为 ParentSomething?
mapping - 我可以在 Mapster 中启用 Unflatten 作为默认配置设置吗?
我们正在使用 Mapster 来映射到我们的模型。默认情况下从模型适应 DTO 展平。但是,为了展开,我们必须添加如下内容:
有没有办法在不使用接口的情况下全局配置它?
如果没有,是否可以使用接口来做到这一点?(例如只是市场接口)
.net - 带有内部构造函数的 MapsterMapper 映射
我正在为 API 做一个包装器,并且我有我的 json 模型,我将使用 MapsterMapper 将其映射到我的实体模型中。
我试图简单地jsonModel.Adapt<EntityModel>()
看起来EntityModel
像这样:
但是它大喊它无法编译并找到合适的构造函数。我试图在配置中欺骗一些东西,但没有机会。
现在,我刚刚删除了内部构造函数,但我的目标是防止我的 api 包装器的用户自己实例化实体。
有什么想法可以解决或解决我的问题吗?
提前致谢
c# - 特定项目的 Mapster.Tool 代码生成
我有一个包含各种示例控制台应用程序项目的 Visual Studio 解决方案。其中之一是 MapsterSample,我在其中试用 Mapster,并按照 GitHub https://github.com/MapsterMapper/Mapster/wiki/Mapster.Tool上描述的步骤生成映射代码。
一切似乎都很好,除了我发出命令的部分:
即使在包管理器控制台中选择 MapsterSample 作为默认项目,这也会导致为解决方案中的每个项目执行命令:
有没有办法只为 MapsterSample 项目执行命令?
c# - 如何编写配置以使用 Mapster 为 IReadOnlyCollection 生成映射器?
如何使用 Mapster 编写配置以生成从 IReadOnlyCollection<POCO> 到 IReadOnlyCollection<DTO> 的映射器?
我已尝试执行以下操作,但它不起作用。
但如果我使用 IReadOnlyCollection 作为属性,它可以工作
c# - 通过 Autofac 进行 Mapster 依赖注入
根据 Mapster 文档https://github.com/MapsterMapper/Mapster/wiki/Dependency-Injection 我应该执行以下操作:
以下是我尝试使用 Autofac 在我们的 MVC 4 应用程序中添加上述配置:
- 如何添加配置实例的单例?
- 不确定我是否正确添加了 IMapper - ServiceMapper 配置以及 InstancePerHttpRequest 是否等同于 AddScoped?