"데이터베이스 우선"방식으로 EF5를 사용하여 WPF에서 첫 번째 MVVM 응용 프로그램을 작성하고 있습니다. MVVM의 내 모델은 EF5가 생성 한 것입니다 (T4 템플릿을 사용자 정의하여 INotifyPropertyChanged를 포함해야했습니다).EF5 SaveChanges with MVVM
모든 것이 제대로 작동하는 것처럼 보입니다. 텍스트 상자의 텍스트를 변경하면 내 모델에서 propertychanged가 발생합니다. 이제 이러한 변경 사항을 데이터베이스에 저장하려고합니다. 오류는 없지만 변경 사항은 제출되지 않습니다.
내 viewmodel에서 context.savechanges()를 수행하는 것으로 충분하지 않습니까? 내 XAML에서
private void UpdatePerson()
{
using (CvContext ctx = new CvContext())
{
ctx.SaveChanges();
}
}
내가 가진 :
<UserControl.DataContext>
<myViewModels:PersonDetailViewModel/>
</UserControl.DataContext>
<TextBox Grid.Row="1" Grid.Column="1" x:Name="txtLastName" Text="{Binding Path=Lastname}"></TextBox>
내가 edmx 디자이너에서 삭제/삽입/업데이트를 정의 할 필요가 또는이 정말 필요합니까?
미리 도움 주셔서 감사합니다. 감사합니다. YK
트릭을 많이 주셔서 감사합니다! – user2135342
모델이 데이터베이스에서 직접 나온 경우 각 속성을 수동으로 매핑 할 필요가 없습니다. 모델의 컨텍스트 ('context.Attach (person)')에 데이터베이스를 첨부 할 수 있으며,'context.Entry (person) = EntryState '라인을 호출하여 EF가이 모델에서 변경된 것을 알릴 필요가있다. 수정 됨. –
@Rikkos 말했듯이 - 사람들은 다른 방식으로 그것을 얻습니다. 이 일을하는 방법은 완벽하게 나를 위해 일하고 내 자신의 이익을 위해서 항상 나는 그 무엇이든지 놓치지 않았 음을 보장하기 위해 그 맵핑을 확실히하고 싶습니다. :) 또한, 제 경우에는 모델을 사용하지 않습니다. EF 생성은 제 모델입니다. –