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