Visual Studio 2015でWPF MVVM Lightアプリケーションを構築しています。これは、Entity Framework 6をデータベースファーストモデル生成で使用しています。ビュー(ユーザーコントロール)で使用するモデルのView Modelクラスを作成しています。ViewModelオブジェクトへのEntity Frameworkナビゲーションプロパティのマッピング
私は次の3つのEFモデルを持っています。 Employee
はEmployeeStatu
、EmployeeStatu
は( 'Leave of Absence'、 'Archived'など)モデルを持っています。ValidEmployeeStatu
モデルでは、従ってemployeeID
はEmployeeStatu
のFKであり、validEmployeeStatusID
はEmployeeStatu
のFKです(ValidEmployeeStatu
のPK)。
私の従業員向けのView Modelは次のとおりです。他の人が同じパターンに従う:
public class EmployeeViewModel : ViewModelBase
{
private int _employeeId;
private string _securityId;
private IEnumerable<EmployeeStatusViewModel> _employeeStatus;
public EmployeeViewModel()
{
this.EmployeeStatusVMs = new HashSet<EmployeeStatusViewModel>();
}
public IEnumerable<EmployeeStatusViewModel> EmployeeStatusVMs
{
get { return _employeeStatus; }
set
{
if (_employeeStatus.Equals(value)) return;
_employeeStatus = value;
RaisePropertyChanged();
}
}
// More properties here...
}
を私は、データをフェッチするために、このLINQクエリを使用しています:
var query = (from e in Context.Employees
.Include("EmployeeStatus.ValidEmployeeStatu")
.Where(comparison)
select new EmployeeViewModel
{
employeeID = e.employeeID,
securityID = e.securityID,
firstName = e.firstName,
middleName = e.middleName,
lastName = e.lastName,
suffix = e.suffix,
job = e.job,
organizationalUnit = e.organizationalUnit,
costCenter = e.costCenter,
notes = e.notes,
createdDate = e.createdDate
});
私は私のビューモデルにナビゲーションプロパティEmployeeStatu
とValidEmployeeStatu
をマッピングする方法を教えてください。そして、SaveChanges()
のView Modelオブジェクトからモデルに値を戻すにはどうしたらいいですか?ありがとうございました。
ありがとう、@jstadnicki。それは完璧な意味合いがあります。 VMからModelにデータを戻す場合と同様のサンプルラインがありますか?何とか私はAutomapperに関する良い文書を見つけることができませんでした。リンクの多くは廃止予定のメソッドのコードを持っていました。 – Alex
オートマッパを検索します。これを手で行う必要はないことがわかります。基本的には、マッピング1-1は両方とも自動的に行われます。 – jstadnicki
私がそれを理解していれば私はAutomapperを使いたいと思っています、@jstadnicki :)見つけたリンクには初心者向けのガイドがいくつかありましたが、完全ではありませんでした。メインサイトの「Getting Started」は、私のようなnoobのためにはあまり役に立たなかった! Automapperの構文であなたが上に書いたものを見たいと思います。 – Alex