无论我使用 Automapper 还是手动映射,都不起作用。
ReleaseViewModel 的所有数据都必须在 Release 中排在第一位,因为它是在数据访问层中填充的。我的模型 90% 都是这样的。为什么复制所有内容的开销?
KISS 原则和过度设计又如何呢?
当然,每个工具都适用于其适当的任务,但我经常读到在 asp.net mvc 中不使用 ViewModel 是不行的。
在哪里画线?当 ViewModel 与我的模型区分为 50%、75% 或 99% 时,我应该使用它们吗?
我有一个模型发布:
public class Release
{
public int Id { get; set; }
public string Name { get; set; }
public string Author { get; set; }
public DateTime CreatedAt { get; set; }
public int FailedTestsCount { get; set; }
public int SucceededTestsCount { get; set; }
public int SumTestsCount
{
get
{
return SucceededTestsCount + FailedTestsCount;
}
}
public int SumTestingTime { get; set; }
}
视图模型 ReleaseViewModel:
public class ReleaseViewModel
{
[HiddenInput(DisplayValue = false)]
public int Id { get; set; }
[Required(ErrorMessage = "Name must not be empty.")]
[StringLength(30, ErrorMessage = "Enter max. 30 chars for a name.")]
[Remote("ReleaseExists", "Release", ErrorMessage = "This name already exists.")]
public string Name { get; set; }
public string Author { get; set; }
public DateTime CreatedAt { get; set; }
public int FailedTestsCount { get; set; }
public int SucceededTestsCount { get; set; }
public int SumTestsCount
{
get
{
return SucceededTestsCount + FailedTestsCount;
}
}
public int SumTestingTime { get; set; }
}