C# 需要一些关于自定义角色表的帮助和提示吗
我使用c作为主要编程语言。链接EF到WPF应用程序。 我想要的东西:保存\加载角色或/和玩家信息并使用它的可能性。 我拥有的东西: 带有播放器和字符表的本地数据库。 玩家有:C# 需要一些关于自定义角色表的帮助和提示吗,c#,wpf,entity-framework,C#,Wpf,Entity Framework,我使用c作为主要编程语言。链接EF到WPF应用程序。 我想要的东西:保存\加载角色或/和玩家信息并使用它的可能性。 我拥有的东西: 带有播放器和字符表的本地数据库。 玩家有: P_ID P_Name 人物有 id (int) name (nvarchar50) pid (int) STR (int) DEX (int) INT (int) 我发现实体框架是一个很好的解决方案,至少对于我想要的东西我是这样认为的 目前我有如下角色和玩家类: public class Character {
P_ID
P_Name
人物有
id (int)
name (nvarchar50)
pid (int)
STR (int)
DEX (int)
INT (int)
我发现实体框架是一个很好的解决方案,至少对于我想要的东西我是这样认为的
目前我有如下角色和玩家类:
public class Character
{
[Key]
public int id { get; set; }
public string name { get; set; }
public int pid { get; set; }
public int STR { get; set; }
public int DEX { get; set; }
public int INT { get; set; }
[ForeignKey("pid")]
public virtual Player Player { get; set; }
}
public class Player
{
[Key]
public int P_ID { get; set; }
public string P_Name { get; set; }
public virtual ICollection<Character> Characters { get; set; }
}
PlayerData.ItemsSource = mdb.Players.ToList();
int xid = PlayerBox.SelectedIndex;
indextest.Content = xid;
及
专用无效播放机框\u选择更改对象发件人,选择更改对象发件人e
{
如果CharacterBox!=null CharacterBox.Items.Clear
int xid = charlist[PlayerBox.SelectedIndex].pid;
indextest.Content = xid;
foreach (string name in getcharbyid(xid))
{
this.CharacterBox.Items.Add(name);
}
应用程序启动时显示:System.ArgumentOutOfRangeException
比较id和索引,如下所示:
public class Character
{
[Key]
public int id { get; set; }
public string name { get; set; }
public int pid { get; set; }
public int STR { get; set; }
public int DEX { get; set; }
public int INT { get; set; }
[ForeignKey("pid")]
public virtual Player Player { get; set; }
}
public class Player
{
[Key]
public int P_ID { get; set; }
public string P_Name { get; set; }
public virtual ICollection<Character> Characters { get; set; }
}
PlayerData.ItemsSource = mdb.Players.ToList();
int xid = PlayerBox.SelectedIndex;
indextest.Content = xid;
看起来id和索引或者我做错了什么是一样的。
更改foreach的尝试失败
更改了某些代码以向characterbox添加字符:
int xid;
Int32.TryParse(PlayerBox.SelectedValue.ToString(), out xid);
indextest.Content = xid;
CharacterBox.Items.Add (from Character in charlist where Character.pid == xid select Character);
CharacterBox.DisplayMemberPath = "name";
CharacterBox.SelectedValuePath = "id";
看起来像是添加到combobox中的字符,但我看不到它们的名称和值:
空字符组合框?
通过使用LINQ查询解决。我的想法是对的-有一个简单的解决方案!如果我做错了什么,有很多简单的方法可以做到,比如扔掉EF和stat处理sql命令,我会很高兴看到你的想法和建议。
int xid;
Int32.TryParse(PlayerBox.SelectedValue.ToString(), out xid);
indextest.Content = xid;
CharacterBox.Items.Add (from Character in charlist where Character.pid == xid select Character);
CharacterBox.DisplayMemberPath = "name";
CharacterBox.SelectedValuePath = "id";