【发布时间】:2019-03-16 17:55:53
【问题描述】:
我有一个 Player 类,它有一个 Id、用户名和等级:
class Player
{
public int Id { get; set; }
public string Username { get; set; }
public Rank Rank { get; set; }
}
我想在 SQLite 数据库中插入一个新播放器,为此我正在使用 Dapper。
在表单按钮按下时:
Player newPlayer = new Player();
Rank newRank = new Rank();
newPlayer.Username = txtUsername.Text;
newPlayer.Rank = newRank;
if (newPlayer.Username != null && newPlayer.Username != String.Empty)
{
SQLiteDataAccess.SavePlayer(newPlayer);
Close();
}
我在“SQLiteDataAccess”中的CRUD方法
public static void SavePlayer(Player player)
{
using (IDbConnection connection = new SQLiteConnection(LoadConnectionString()))
{
connection.Execute("insert into Players (Username, Rank) values (@Username, @Rank)",
player);
}
}
我的“Rank”类由一个字符串名称和几个整数组成。我有一个构造函数,将它们全部设置为默认值“-”和 0。
当我使用这个自定义的“Rank”类型作为参数时出现问题:
System.NotSupportedException: 'Prototype1.Rank 类型的成员 Rank 不能用作参数值'
有没有办法解决这个问题,或者不使用 Dapper 的其他方法?
【问题讨论】: