Решение:
using System.Linq;
using System.Reflection;
using AutoMapper;
namespace AgilityTracker.BLL.Extension
{
public static class MappingExpressionExtension
{
/// <summary>
/// Игнорирует свойства в Destination для которых нет соотвествия в Source
/// </summary>
public static IMappingExpression<TSource, TDest> IgnoreAllUnmapped<TSource, TDest>(this IMappingExpression<TSource, TDest> expression)
{
var destinationProperties = typeof(TDest).GetProperties().Select<PropertyInfo, string>(s => s.Name);
var sourceProperties = typeof(TSource).GetProperties().Select<PropertyInfo, string>(s => s.Name);
var difference = destinationProperties.Except(sourceProperties);
difference.Each(item => expression.ForMember(item, o => o.Ignore()));
return expression;
}
}
}
Использование:
using AgilityTracker.BLL.Extension;
...
Mapper.CreateMap<Story, DAL.Story>()
.IgnoreAllUnmapped();
Стандартного метода, как я понял, в AutoMapper нету?