0
我有一个棘手的问题很多很多。我有两个类Character
和Weapon
。这两个人有一张名为WeaponCharacter
的桥牌桌,这是一个多对多的关系。几个角色可以有几个相同的武器和几个
在该时点,A Character
可以拥有各自独一无二的weapon
,但Character
不能拥有两个相同的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");
}
我所做的:
我也曾经在WeaponCharacter
添加量,但随后ICollections
为Weapon
和Character
自己都搞砸了。
这可以在这里读到:ASP.net create many to many entity in C#
目标:
我想一个角色能够拥有相同的武器藏汉的多张复印件。
正如Sean Lange所说,我希望角色能够拥有同一武器的多个副本。在这种情况下有多少错误?只需制作一个库存表就可以更容易一些,这个库需要武器ID。 – Kokefa
如果你删除数量列并且只有一个带有WeaponCharacterId(Key),WeaponId和CharacterId的表格,并且只是插入相同的武器和角色ID,你可能会更好。这会让你灵活地为每个字符 – JamieD77
@ JamieD77对相同的武器进行不同的优化,听起来容易得多。有时候,单独参与某个项目往往会让你的思维保持在框中。我会去解决这个问题。 – Kokefa