C# 整洁的工作不正常。我是这个框架的新手
为了简单起见,我删除了Accounts类中的一些方法,以及Display方法中的一些行,并且只显示了requiredC# 整洁的工作不正常。我是这个框架的新手,c#,dapper,C#,Dapper,为了简单起见,我删除了Accounts类中的一些方法,以及Display方法中的一些行,并且只显示了required class Accounts { public int AccountNo { get; set; } public string Firstname { get; set; } public int Balance { get; set; } } public void Dispal
class Accounts
{
public int AccountNo { get; set; }
public string Firstname { get; set; }
public int Balance { get; set; }
}
public void Dispaly()
{
using (SqlConnection conn = new SqlConnection(connstring))
{
conn.Open();
var res = conn.Query<Accounts>("select * from Accounts").ToList();
foreach (Accounts ac in res)
{
Console.WriteLine("Account No : " + ac.AccountNo);
Console.WriteLine("Name : " + ac.Firstname);
Console.WriteLine("Balance : " + ac.Balance);
}
conn.Close();
return;
}
}
注意:如果我将Accounts类中的Balance方法重命名为Amount。它工作得很好。
使用DAPPER,我的程序中的方法名和DB中的列名之间存在任何关系?通过编辑,我们可以看到该表没有余额-它有金额。你需要给它一些帮助。您可以在C代码中将Balance属性重命名为Amount,也可以使用查询对其进行调整,例如:
var res = conn.Query<Accounts>(
"select AccountNo, FirstName, Amount as Balance from Accounts").AsList();
请注意,这里的AsList比ToList稍微高效一些——它避免了额外的一些分配;还请注意,您实际上不需要在此处打开/关闭-Dapper很乐意为您这样做您需要向我们展示您的Accounts类和表的SQL模式。我很确定Dapper可以正常工作,但有些东西还没有定义好。记住,Dapper,如果类帐户和表帐户之间没有某种映射,则需要在属性名称和字段名称之间精确匹配。还要检查属性和字段的数据类型是否兼容只是出于好奇,这样我才能更好地理解您的思维过程:您真的认为Dapper应该能够自动猜测应该映射到余额的金额?
var res = conn.Query<Accounts>(
"select AccountNo, FirstName, Amount as Balance from Accounts").AsList();