我多次重复这段代码:
if (db2.Query<int>("SELECT 1 FROM CARDCHOICE WHERE CC = ?", (int)CC.JFBP1).Count == 0)
{
var temp10 = Enumerable.Range(0, 10).Select(i => new CardChoice { Cc = (int)CC.JFBP1, Number = i });
db2.InsertAll(temp10);
}
我试着把它放到一个我称之为
的方法中InsertCC(CC.JFBP1, 10);
这是方法
private static void InsertCC(CC cc, int qty )
{
var choice = int(cc);
if (db2.Query<int>("SELECT 1 FROM CARDCHOICE WHERE CC = ?", choice).Count == 0)
{
var temp = Enumerable.Range(0, qty).Select(i => new CardChoice { Cc = choice, Number = i });
db2.InsertAll(temp);
}
}
然而,发生的事情是它告诉我我不能在(int)方法中使用cAST来获取cc并给我“Error expression term int”
有人可以给我一些建议,告诉我如何投出传入的cc吗?我意识到我可以在方法调用中进行转换,但是我不想这样做,因为我有很多这些调用。
答案 0 :(得分:2)
此代码不会投射var choice = int(cc);
使用var choice = (int)cc;
但你没有在方法中使用cc
参数,所以只需传递int
private static void InsertCC(int choice, int qty )
{
if (db2.Query<int>("SELECT 1 FROM CARDCHOICE WHERE CC = ?", choice).Count == 0)
{
var temp = Enumerable.Range(0, qty).Select(i => new CardChoice { Cc = choice, Number = i });
db2.InsertAll(temp);
}
}
然后你的电话就可以了
InsertCC(CC.JFBP1, 10);