C# 访问从SQLite数据库返回的字符串任务的字段时出错
在我的Xamarin应用程序中,我使用SQLite设置了一个本地数据库。我在设置时遵循了microsoft待办事项列表示例(),但遇到了一个问题 我有一个名为“Animal”的模型,它保存在我的数据库中,我试图查询以下字段:C# 访问从SQLite数据库返回的字符串任务的字段时出错,c#,sqlite,xamarin,C#,Sqlite,Xamarin,在我的Xamarin应用程序中,我使用SQLite设置了一个本地数据库。我在设置时遵循了microsoft待办事项列表示例(),但遇到了一个问题 我有一个名为“Animal”的模型,它保存在我的数据库中,我试图查询以下字段: public int ID { get; set; } public string Name {get; set; } public string Species { get; set; } public string Ma
public int ID { get; set; }
public string Name {get; set; }
public string Species { get; set; }
public string Markings { get; set; }
public string Diet { get; set; }
在我的数据库查询文件中,我正在尝试执行一个查询,该查询将根据用户提供的动物名称获取该动物,然后它将从中返回其标记/饮食/等等。。。
这是我到目前为止所拥有的,但它是错误的,我真的不确定如何修复它:
public async Task<string> getanimaldiet(string name)
{
Animal a = Database.Table<Animal>().Where(x => x.Name == name).FirstOrDefaultAsync();
return a.Diet;
}
public异步任务getanimaldiet(字符串名称)
{
Animal a=Database.Table()。其中(x=>x.Name==Name.FirstOrDefaultAsync();
返回a.饮食;
}
错误:
当前上下文中不存在名称“diet”&无法将类型“System.Threading.Tasks.Task”隐式转换为“animalService.Animal”
非常感谢您的帮助。因为您有异步api,所以需要将wait添加到代码中:
Animal a = await Database.Table<Animal>().Where(x => x.Name == name)
.FirstOrDefaultAsync();
return a.Diet;
Animal a=wait Database.Table()。其中(x=>x.Name==Name)
.FirstOrDefaultAsync();
返回a.饮食;
您可以使其同步:
public string getanimaldiet(string name)
{
Animal a = Database.Table<Animal>().Where(x => x.Name == name)
.FirstOrDefault();
return a.Diet;
)
公共字符串getanimaldiet(字符串名称)
{
动物a=数据库.Table()。其中(x=>x.Name==Name)
.FirstOrDefault();
返回a.饮食;
)
您有什么错误?名称“diet”在当前上下文中不存在,无法将类型“System.Threading.Task.Task”隐式转换为“animalService.Animal”更新帖子以包含此内容谢谢!然后如何将返回的内容转换为字符串而不是类型“System.Threading.Task.Task”?使用FirstOrDefault当我在另一个文件@Jason中调用函数时,我会使用code>而不是FirstOrDefaultAsync
吗?