如果我想要单个原始值,例如int
,string
,float
等,我可以这样做。
using (var db = new SQLiteConnection(DbPath))
{
double i = db.CreateCommand("select salary from PersonMaster where personId = ?", 9).ExecuteScalar<double>();
}
如果我尝试返回个人主人的整个对象,即单行,则以下代码返回null
using (var db = new SQLiteConnection(DbPath))
{
PersonMaster objPersonMaster = db.CreateCommand("select * from PersonMaster where personId = ?", 9).ExecuteScalar<PersonMaster>();
}
我必须使用这个
using (var db = new SQLiteConnection(DbPath))
{
List<PersonMaster> lstPersonMaster = db.Query<PersonMaster>("select * from PersonMaster where personId = ?", 9);
PersonMaster objPersonMaster = lstPersonMaster.First();
}
有什么办法可以将单行作为对象,而不是处理
List<T>
最佳答案
我假设您正在使用SQLite-Net。如果是这种情况,可以使用Find
方法。 Find
使用其主键获取一个对象。personId
字段需要PrimaryKey
属性,如下所示:
public class PersonMaster
{
[PrimaryKey]
public int personId { get; set; }
public string name { get; set; }
public decimal salary { get; set; }
}
然后,您可以像这样使用
Find
:// get person 9
PersonMaster person9 = db.Find<PersonMaster>(9);