Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问从SQLite数据库返回的字符串任务的字段时出错_C#_Sqlite_Xamarin - Fatal编程技术网

C# 访问从SQLite数据库返回的字符串任务的字段时出错

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

在我的Xamarin应用程序中,我使用SQLite设置了一个本地数据库。我在设置时遵循了microsoft待办事项列表示例(),但遇到了一个问题

我有一个名为“Animal”的模型,它保存在我的数据库中,我试图查询以下字段:

    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而不是
FirstOrDefaultAsync
吗?