에 기초하여 I 다음 코드를 가지고 값 null
경우 기본적 int?
수분을Automapper : Hydrate int? 조건
[Test]
public void ConditionalMapping()
{
var src = new Sample1 {Age = 1, Number = null};
var dest = new Sample2 {Age = null, Number = 1};
Hydrate(src, dest, false);
Assert.That(dest.Age, Is.EqualTo(1));
Assert.That(dest.Number, Is.EqualTo(1));
src = new Sample1 {Age = null, Number = 1};
dest = new Sample2 {Age = 1, Number = null};
Hydrate(src, dest, true);
Assert.That(dest.Age, Is.Null);
Assert.That(dest.Number, Is.EqualTo(1));
}
public void Hydrate(Sample1 src, Sample2 dest, bool allowOverride)
{
if (!dest.Age.HasValue || allowOverride)
dest.Age = src.Age;
if (!dest.Number.HasValue || allowOverride)
dest.Number = src.Number;
}
public class Sample1
{
public int? Age { get; set; }
public int? Number { get; set; }
}
public class Sample2
{
public int? Age { get; set; }
public int? Number { get; set; }
}
를이 필드의 값을 체크하지 않고 값 수화 것이다하는 allowOverride = true
, 그러하지 아니하다.
Automapper에서 어떻게해야합니까?
Automapper's condition gets ignored
을하지만하는 방법을 알아낼 수 없습니다 : :
- 없이
int?
에 따라 논리를 적용 다음과 같이난 당신이 .Condition()를 사용할 수 있다는 것을 알고 그것을 하나씩 정의한다.
- Mapper에 부울 값인
allowOverride
을 포함합니다.
나는 이것을 시험해보고 알려줄 것입니다. –