こんにちは。
Windows10でASP.NET MVCのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
Modelについて知識を深めたいです。
EDMXでCodeFirstでモデルたとえばUserModelを作るとします。
Id int(自動採番)
Name string
Email string
です。
これを表示し、Edit.cshtmlで更新するときに、EmailはmailaddressとしてValidationしたいです。
ところが、EDMXでつくると、UserModel.csは隠蔽されていて、自動更新するために、validationを追加するようなことができません。
そこで、表示用のUserShowModel.csをつくり、
Id int
Name string
Email string
C#
1 public class UserShowModel 2 { 3 public int Id { get; set; } 4 5 public string UserId { get; set; } 6 7 [Required] 8 [EmailAddress] 9 public string Email { get; set; } 10}
として、表示時に、
C#
1private UserShowModel UserModel2UserShowModel(User user) 2 { 3 var showmodel = new UserShowModel(); 4 showmodel.Id = user.Id; 5 showmodel.UserId = user.UserId; 6 showmodel.Email = user.Email; 7 return showmodel; 8}
のように型変換し、逆にView->Controllerにするときは、この逆を行う、というのは、ふつうのやり方でしょうか?
疑問なのは、
Q1)同じようなクラスをふたつ作るのは変な気がする。
Q2)型変換もめんどう。
の2点です。
こういうものなら、こういうものなのかなとも思いますが、なんだかすっきりしません。
ご助言いただければと思います。
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
あなたの回答
tips
プレビュー