几个角色可以有几种武器和几种同类武器

时间:2015-09-25 13:46:00

标签: c# sql-server asp.net-mvc many-to-many

我有很多棘手的问题。我有两个课程CharacterWeapon。这两个有一个名为WeaponCharacter的桥表,这是一个多对多的关系。

enter image description here

此时,A Character可以拥有每种weaponCharacter,但Weapons不能拥有两个相同的 [HttpGet] public ActionResult BuyWeapon(int weaponId) { string currentUserId = User.Identity.GetUserId(); var ctx = new DAL.ProjectStrawberryEntities(); Character character = ctx.Characters.FirstOrDefault(c => c.AccountId == currentUserId); Weapon weapon = ctx.Weapons.FirstOrDefault(w => w.Id == weaponId); if (character.Gold - weapon.Price >= 0) { character.Weapons.Add(weapon); character.Gold -= (int)weapon.Price; ctx.SaveChanges(); } return RedirectToAction("Index", "Game"); } 。下面的图片描述了我想要做的事情。

enter image description here

上半部分是代码的当前状态,下面是我想要的代码,或类似的解决方案。

这是处理购买武器的交易的方法。

WeaponCharacter

我做了什么:

我确实在ICollections中添加了一次数量,但WeaponCharacter的{​​{1}}确实搞砸了。

可在此处阅读:ASP.net create many to many entity in C#

目标:

我希望角色能够拥有相同武器的多个副本。

1 个答案:

答案 0 :(得分:1)

正如JamieD77在评论中提到的那样。

  

如果您删除数量列并且只有一个包含WeaponCharacterId(Key),WeaponId和CharacterId的表,并且只是继续插入相同的武器和角色ID,那么从长远来看,您可能会更好。这将使您可以灵活地为每个角色对同一武器进行不同的优化。