引用非标量闭包
本文关键字:闭包 标量 引用 | 更新日期: 2023-09-27 18:18:15
我是c#新手,尤其是linq。
我的问题是:
Player Hero = new Player();
Hero.ImageURL = LBimage.SelectedIndex.ToString();
Hero.Name = HeroName.Text;
Hero.HP = 200;
Hero.HPMAX = 200;
Hero.PosX = 3;
Hero.PosY = 3;
Hero.XP = 0;
DB.Player.Add(Hero);
Item w = new Item();
w.ItemDamage = 100;
w.ItemName = "Griffe de Lynx2";
w.Player.Add(Hero);
db.Item.Add(w);
db.SaveChanges();
var query = (from item in db.Item where (item.Player == Hero)select item).ToList();
List<Item> Inventory = query;
foreach (var item in Inventory)
{
MessageBox.Show(item.ItemName);
}
我想为每个在游戏中注册的玩家创建一个库存。为此,我有3个表,Player, Item和PlayerObject。
这个想法是用两列PlayerID和ObjectID填充关系表。每当我找到带有玩家的道具时,我都会将道具id和玩家id放入其中。
问题是,正如你在上面看到的,我不能做一个查询,允许我检索英雄拥有的物品列表。
你知道我该怎么做吗?
在实体框架设计器中,确保表作为多对多关系链接。当实体框架生成数据库脚本时,将自动创建所需的关系表。
在代码中检索一个球员的所有物品,尝试以下操作:
IEnumerable<Items> itemEnum = DB.Player.Where(p=>p.PlayerID == pid).Items;
List<Items> itemList = itemEnum.ToList();
其中pid
是你希望找到其库存的玩家的id。