Я создал эти два метода расширения.
public static IEntity<T> ToModel<T>(this IEntityViewModel<T> viewModel)
{
return (IEntity<T>)Mapper.Map(viewModel, viewModel.GetType(), typeof(IEntity<T>));
}
public static IEntityViewModel<T> ToViewModel<T>(this IEntity<T> entity)
{
return (IEntityViewModel<T>)Mapper.Map(entity, entity.GetType(), typeof(IEntityViewModel<T>));
}
и я использовал это здесь.
IEntityViewModel<Int64> entityViewModel = urlRec.ToViewModel<Int64>();
IEntity<Int64> entity = entityViewModel.ToModel<Int64>();
Я не знаю, как выглядит ваша модель представления, поэтому я создал одну тестовую модель представления и интерфейс.
public interface IEntityViewModel<T>
{
T Id { get; set; }
DateTime Created { get; set; }
DateTime Updated { get; set; }
byte[] RowVersion { get; set; }
}
public class UrlRecViewModel : IEntityViewModel<Int64>
{
public int EntityId { get; set; }
public string EntityName { get; set; }
public string Slug { get; set; }
public bool IsActive { get; set; }
public int LanguageId { get; set; }
public long Id { get; set; }
public DateTime Created { get; set; }
public DateTime Updated { get; set; }
public byte[] RowVersion { get; set; }
}