這是我正在使用的基本模式的精簡示例。我意識到這個例子很復雜,但有一些原因正在使用這個模式,這對于描述我看到的問題并不重要。另外值得注意的是:我使用的是數(shù)據(jù)庫優(yōu)先。團隊(表)ID名稱球員(表)IdTeamId年份姓名職位比賽(表)Id日期HomeTeamId客場TeamIdGameHomePlayer_VW (View)GameId(在 EDMX 中定義為 PK)HomePlayerId視圖 GameHomePlayer_VW 定義為:SELECT Game.Id, Player.IdFROM GameLEFT OUTER JOIN PlayerON Game.HomeTeamId = Player.TeamId AND YEAR(Game.Date) = Player.Year(如果你很好奇還有一個 GameAwayPlayer_VW :))Game和之間的 EDMX 關聯(lián)GameHomePlayer_VW:Referential Constraint Game -> GameHomePlayer_VWEnd1 Multiplicity 0..1 (Zero or One of GameHomePlayer_VW)End1 Navigation Property GameEnd1 OnDelete NoneEnd1 Role Name GameHomePlayer_VWEnd2 Multiplicity 1 (One of Game)End2 Navigation Property GameHomePlayer_VWEnd2 OnDelete NoneEnd2 Role Name GameName GameHomePlayer_VWGameGame和GameHomePlayer_VW由 EF 生成的類:public partial class Game{ public int Id { get; set; } public DateTime Date { get; set; } public Nullable<int> HomeTeamId { get; set; } public Nullable<int> AwayTeamId { get; set; } public virtual Team HomeTeam { get; set; } public virtual Team AwayTeam { get; set; } public virtual GameHomePlayer_VW GameHomePlayer_VW { get; set; } public virtual GameAwayPlayer_VW GameAwayPlayer_VW { get; set; }}public partial class GameHomePlayer_VW{ public int GameId { get; set; } public Nullable<int> PlayerId { get; set; } public virtual Game Game { get; set; } public virtual Player Player { get; set; }}我遇到的問題是,當我嘗試使用 EF 刪除游戲實體時,收到以下錯誤:無法更新 EntitySet 'GameHomePlayer_VW',因為它有一個 DefiningQuery 并且<DeleteFunction>元素中不存在<ModificationFunctionMapping>支持當前操作的元素。還有其他實體引用游戲并使用級聯(lián)刪除被刪除。我嘗試使用這篇文章中的解決方案沒有成功:無法更新 EntitySet - 因為它有一個 DefiningQuery 并且不存在 <UpdateFunction> 元素我還嘗試連接一個存儲過程,該過程采用 EDMX 定義的 PK 并返回 0。我嘗試初始化我的 DbContext 類的新實例以刪除它,如下所示,但仍然遇到同樣的問題。在允許添加/更新/刪除引用它的實體的同時,是否有人對維護基于游戲日期的動態(tài)鏈接有任何建議?
- 1 回答
- 0 關注
- 187 瀏覽
添加回答
舉報
0/150
提交
取消