无法删除具有导航属性的实体进行查看

这是我正在使用的基本模式的精简示例。我意识到这个例子很复杂,但有一些原因正在使用这个模式,这对于描述我看到的问题并不重要。


另外值得注意的是:我使用的是数据库优先。


团队(表)

ID

名称


球员(表)

Id

TeamId

年份

姓名

职位


比赛(表)

Id

日期

HomeTeamId

客场TeamId


GameHomePlayer_VW (View)

GameId(在 EDMX 中定义为 PK)

HomePlayerId


视图 GameHomePlayer_VW 定义为:


SELECT

    Game.Id,

    Player.Id

FROM Game

LEFT OUTER JOIN Player

ON

    Game.HomeTeamId = Player.TeamId AND

    YEAR(Game.Date) = Player.Year

(如果你很好奇还有一个 GameAwayPlayer_VW :))


Game和之间的 EDMX 关联GameHomePlayer_VW:


Referential Constraint      Game -> GameHomePlayer_VW


End1 Multiplicity           0..1 (Zero or One of GameHomePlayer_VW)

End1 Navigation Property    Game

End1 OnDelete               None

End1 Role Name              GameHomePlayer_VW

End2 Multiplicity           1 (One of Game)

End2 Navigation Property    GameHomePlayer_VW

End2 OnDelete               None

End2 Role Name              Game

Name                        GameHomePlayer_VWGame

Game和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>支持当前操作的元素。


还有其他实体引用游戏并使用级联删除被删除。


我尝试使用这篇文章中的解决方案没有成功:无法更新 EntitySet - 因为它有一个 DefiningQuery 并且不存在 <UpdateFunction> 元素


我还尝试连接一个存储过程,该过程采用 EDMX 定义的 PK 并返回 0。


我尝试初始化我的 DbContext 类的新实例以删除它,如下所示,但仍然遇到同样的问题。

在允许添加/更新/删除引用它的实体的同时,是否有人对维护基于游戏日期的动态链接有任何建议?


喵喵时光机
浏览 179回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP