我有一個問題找出正確的方法來獲取外鍵字段使用實體框架更新。我在數據庫中更新它們時沒有問題,而是在界面上更新它們。獲得實體框架來更新正常和關係字段
下面是相關的表我的問題 文件:/// C:/Users/Mike/Desktop/RelevantTables.bmp
我有一個「團隊」的形式與主/從類型視圖(主= Team,detail = Player),並在ListView中顯示玩家。當你雙擊播放器時,我會顯示「編輯播放器」表單。
這裏是我正在加載中我TeamForm Window_Loaded事件的數據:
var TeamQuery = from t in ScoresDB.Team
.Include("School").Include("TeamLevel").Include("Player.PlayerPosition")
.Where(x => x.TeamID == TeamID)
select t;
TeamData = new TeamCollection(TeamQuery, ScoresDB);
TeamViewSource = (CollectionViewSource)FindResource("TeamViewSource");
PlayerViewSource = (CollectionViewSource)FindResource("PlayerViewSource");
TeamViewSource.Source = TeamData;
TeamView = (ListCollectionView)TeamViewSource.View;
TeamView.CurrentChanged += new EventHandler(TeamView_CurrentChanged);
PlayerView = (BindingListCollectionView)PlayerViewSource.View;
這是當用戶希望編輯一個球員,我正在做的事情:
// If the user made changes to the player, then refresh our view
if (PlayerForm.EditPlayer(SelectedPlayer.PlayerID)) {
ScoresDB.Refresh(System.Data.Objects.RefreshMode.ClientWins, PlayerView);
}
我的問題是儘管每個不是外鍵的字段確實反映了ListView中的變化,但PlayerPosition卻沒有。它正在數據庫中正確更改。我是否需要每次都重新查詢數據庫?
我得到了獨特的感覺,我正在做所有這一切都相當糟糕,因爲我剛剛開始跋涉WPF和EF。
如果任何人有線索正在發生的事情,或只是想告訴我這樣做是多麼愚蠢,這對我來說很好!
由於提前, 邁克
對不起,參考我的位圖。這是我第一次發佈在StackOverflow上!我也忘記提到我在我的XAML中使用{Binding Source}標籤綁定到主視圖和詳圖視圖。 – mkgrunder 2009-07-28 09:42:35