簡體   English   中英

實體框架與fluentapi的多個相同類型的可選關系

[英]Entity Framework multiple optional relationships of same type with fluentapi

我有一個具有兩個可選字段,類型為“ Team”的“ TeamOne”和類型為“ Team”的“ TeamTwo”的類。 顯然,團隊可以不分配給游戲而存在,並且當游戲被刪除時也不能刪除,反之亦然。

現在,我嘗試以這種方式設置關系:

HasOptional(x => x.TeamOne).WithOptionalDependent(x => x.Game).WillCascadeOnDelete(false);
HasOptional(x => x.TeamTwo).WithOptionalDependent(x => x.Game).WillCascadeOnDelete(false);

我遇到了錯誤

指定的架構無效。 錯誤:由於類型“ Infrastructure.DAL.Team”不可用,因此未加載關系“ Infrastructure.DAL.Match_TeamOne”。

我在這里做錯什么了嗎?

編輯:1場比賽:1 TeamOne和1 TeamTwo TeamOne和TeamTwo被分配給1個游戲最大

您正在嘗試用一個反端創建兩個關系。 Game.TeamOneGame.TeamTwo都與Team.Game有關。 但是,當來自TeamTeam.Game應該引用哪個Game TeamOneTeamTwo嗎? 那里含糊不清。 您需要Game類型的第二個屬性來綁定TeamTwo 這將工作:

HasOptional(x => x.TeamOne).WithOptionalDependent(x => x.HomeGame).WillCascadeOnDelete(false);
HasOptional(x => x.TeamTwo).WithOptionalDependent(x => x.AwayGame).WillCascadeOnDelete(false);

但是我認為這種模式是不正確的。 一個團隊真的只有一場Game嗎? 那是一個有趣的競爭模型! 我認為團隊可以參加“許多”游戲,並且映射應如下所示:

HasOptional(x => x.TeamOne).WithMany(x => x.HomeGames)
                  .WillCascadeOnDelete(false)
HasOptional(x => x.TeamTwo).WithMany(x => x.AwayGames)
                  .WillCascadeOnDelete(false)

...其中HomeGamesAwayGamespublic (virtual) ICollection<Game>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM