【发布时间】:2017-12-23 13:47:04
【问题描述】:
我使用 Dto 将数据传输到域并使用 automapper 进行映射。 我的问题是,不存在 dto 但我需要在映射到域之前设置的属性。 我曾尝试使用 Linq 查询在映射方法之前和之后从 db 获取外部数据,但 linq 查询给出错误。
下面的示例
FooDto
public class FooDto
{
public int MyProperty1 {get;set;}
}
FooDomain
public class Foo
{
public int MyProperty1 {get;set;}
public int MyProperty2 {get;set;}
public int Foo2ID {get;set;}
public virtual Foo2 Foo2 {get;set;}
}
Foo2Domain
public class Foo2
{
public int ID {get;set;}
public int MyProperty1 {get;set;}
}
**自动映射器*
Mapper.Initialize(x =>
{
x.CreateMap<FooDto, Foo>().BeforeMap(
(src, dest) =>dest.MyProperty2 = dest.Foo2.MyProperty1);
}
我想使用映射将 Foo2.MyProperty1 设置为 Foo.MyProperty2。
【问题讨论】:
-
我有一个问题,如果你这样做 .BeforeMap 不是 dest DTO 为空吗?我认为 dest.Foo2 会抛出空引用异常。这是对的还是我离基地很远?
-
@Woot 你是对的。如何使用 linq 查询从另一个表中获取数据?
标签: c# asp.net linq asp.net-web-api automapper