Automapperを使用するか手動マッピングを使用するかにかかわらず、それは何の役割も果たしません。
ReleaseViewModelのすべてのデータは、データアクセス層に入力されるため、リリースの最初にある必要があります。私のモデルの90%はこのようなものです。なぜすべてを複製するオーバーヘッドがあるのですか?
KISSの原則と過剰設計についてはどうですか?
もちろん、適切なタスクのためのすべてのツールですが、asp.netmvcでViewModelsを使用しないことはNO-GOであるとSOでよく読んでいます。
どこに線を引くか?モデルと50%、75%、または99%区別する場合、ViewModelsを使用する必要がありますか?
私はモデルリリースを持っています:
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; }
}