- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
为什么UseValue只执行一次?我需要为每个请求调用 TeamRepository。
我怎样才能做到这一点?
从 TeamEmployee 到 TeamEmployeeInput 的映射:
CreateMap<TeamEmployee, TeamEmployeeInput>()
.ForMember(x => x.Teams, x => x.UseValue(GetTeamEmployeeInputs()))
.ForMember(d => d.SelectedTeam, s => s.MapFrom(x => x.Team == null ? 0 : x.Team.Id));
private IEnumerable<TeamDropDownInput> GetTeamEmployeeInputs()
{
Team[] teams = CreateDependency<ITeamRepository>().GetAll();
return Mapper.Map<Team[], TeamDropDownInput[]>(teams);
}
域对象:
public class TeamEmployee : Entity
{
public virtual Employee Employee { get; set; }
public virtual Team Team { get; set; }
}
查看模型对象:
public class TeamEmployeeInput
{
public int? Id { get; set; }
public string EmployeeLastName { get; set; }
public string EmployeeEMail { get; set; }
public string EmployeeFirstName { get; set; }
public int SelectedTeam { get; set; }
public IList<TeamDropDownInput> Teams { get; set; }
}
public class TeamDropDownInput : IDropdownList
{
public int Id { get; set; }
public string Text { get; set; }
}
最佳答案
试试 MapFrom
选项。它提供了一个委托(delegate),每次发生 map 时都会调用该委托(delegate)。从快速 DateTime 测试和我的命令窗口来看,这似乎有效。
类似于:
public class Foo {
public DateTime bar { get; set; }
}
public class Foo1
{
public DateTime bar1 { get; set; }
}
Mapper.CreateMap<Foo, Foo1>()
.ForMember(x => x.bar1, opt => opt.MapFrom(x => DateTime.Now)); // not using x, your function returns the value for bar1
我必须指出这不是 AutoMapper 设计的工作方式。 AutoMapper 应该将属性从一个模型映射到另一个模型。因此,如果 modelA
上不存在数据,则不应将该数据映射到 modelB
。
您的代码更改为:
CreateMap<TeamEmployee, TeamEmployeeInput>()
.ForMember(x => x.Teams, x => x.MapFrom(x => GetTeamEmployeeInputs()))
关于c# - AutoMapper:为什么 UseValue 只执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662863/
我有以下代码片段: Mapper.CreateMap() .ForMember(x => x.CompanyId, opt => opt.UseValue(_companyId)); Mapp
useValue 和 useFactory 提供者有什么区别? useFactory 似乎返回一个值,useClass 也返回一个值。 最佳答案 useFactory 采用预期返回值的工厂函数,并且还
我在 Controller 中使用 Automapper,但在第一次调用后数据没有被刷新。 public class Somethings { public int Id {get; set;
为什么UseValue只执行一次?我需要为每个请求调用 TeamRepository。 我怎样才能做到这一点? 从 TeamEmployee 到 TeamEmployeeInput 的映射: Crea
我收到这个错误 - 错误:错误:静态解析符号值时遇到错误。调用函数“SecurityModule”,不支持函数调用。考虑用导出函数的引用替换函数或 lambda ... 我读到函数调用不能太复杂以至于
我有以下代码模拟来自服务的数据: providers: [ { provide: AdminService, useValue: { avcData: { runMode: 'NORM
我正在尝试构建一个 React Native 应用程序。我在终端上发现了一个错误说Unable to resolve "./useValue" from "node_modules\react-nat
在编写单元测试时,我遇到了奇怪的情况,我不明白问题出在哪里。 我已经准备好重现的短代码: TestInjectable - 简单的可注入(inject)类 @Injectable() class Te
我想知道为什么当我想通过 useValue 字段提供特定值时 Angular 2 提供程序语法不起作用。 例如,在我的 app.module.ts 中 // Abstracted base class
Angular 2 高级测试文档: userServiceStub = { isLoggedIn: true, user: { name: 'Test User'} }; TestBed.co
我使用 window.location 设置可注入(inject)。在我靠近导入的模块中,我定义了变量 const flag = window.location.search.includes('fl
我需要在 Angular 2 中为 dart 添加一个“外部”对象到依赖注入(inject)。 “外部”的意思是,它的构造函数上没有 @Injectable 注释,因为它来自外部库。 所以我想,我可以
当 Angular 4.0.2 应用程序提前编译时,提供者定义为 useValue import { OpaqueToken, Provider } from '@angular/core'; exp
我是 Angular 4 的新手,我刚刚通过 Angular Cli 创建了一个项目,但出现错误 Uncaught TypeError: useValue,useFactory,data is not
我是一名优秀的程序员,十分优秀!