Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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
Linq 属性不是id的CreateDocumentQuery()_Linq_Rest_Api_Azure_Azure Cosmosdb - Fatal编程技术网

Linq 属性不是id的CreateDocumentQuery()

Linq 属性不是id的CreateDocumentQuery(),linq,rest,api,azure,azure-cosmosdb,Linq,Rest,Api,Azure,Azure Cosmosdb,我正在尝试使用DocumentDB中id以外的属性查询文档。我找到了一个解决方案,但我不确定在执行查询时URL应该是什么。例如,在此senario中: var families = from f in client.CreateDocumentQuery<Family>(colSelfLink) where f.Address.City != "NY" select f; var families=来自client.CreateDocumentQuery

我正在尝试使用DocumentDB中id以外的属性查询文档。我找到了一个解决方案,但我不确定在执行查询时URL应该是什么。例如,在此senario中:

var families = from f in client.CreateDocumentQuery<Family>(colSelfLink)
       where f.Address.City != "NY"
       select f;
var families=来自client.CreateDocumentQuery(colSelfLink)中的f
f地址城市在哪里!=“纽约”
选择f;
如果是getFamilyById,则可能是xxxxx=家族id所在的位置

如果是getFamilyByCity,则无法再使用此格式:其中xxxxx=城市名称。因为API会混淆您选择的是家庭id还是城市名称。所以我认为我们应该使用URL,比如where xxxx=城市名称

但我想知道我们如何才能做到这一点

以下是我的示例代码:

namespace Family.Controllers
{
    [Produces("application/json")]
    [Route("api/Family")]
    public class FamilyController : Controller
    {
        [HttpGet]
        public async Task<IEnumerable<Family>> GetAllAsync()
        {
            var families= await FamilyProfile.DocumentDBRepository<Family>.GetIndividualsAsync(t => t.PrimaryKey != null);
            return families;
        }

        [HttpGet("{id}")]
        public async Task<IActionResult> GetByIdAsync(string id)
        {
            var family= await DocumentDBRepository<Individual>.GetFamilyAsync(id);
            if (family== null)
            {
                return NotFound();
            }
            return new ObjectResult(family);
        }

        [HttpGet("{FamilyID}")]
        [Route("/ByCity")]
        public async Task<IActionResult> GetByCityAsync(string city)
        {
            var family= await DocumentDBRepository<Family>.GetFamilyAsyncByFamilyID(city); 

            if (family== null)
            {
                return NotFound();
            }
            return new ObjectResult(family);
        }
             }
    } 
命名空间族.控制器
{
[产生(“应用程序/json”)]
[路线(“api/系列”)]
公共类家庭控制器:控制器
{
[HttpGet]
公共异步任务GetAllAsync()
{
var families=await FamilyProfile.DocumentDBRepository.GetIndividualsAsync(t=>t.PrimaryKey!=null);
返回家庭;
}
[HttpGet(“{id}”)]
公共异步任务GetByIdAsync(字符串id)
{
var family=await DocumentDBRepository.GetFamilyAsync(id);
if(family==null)
{
返回NotFound();
}
返回新的ObjectResult(族);
}
[HttpGet(“{FamilyID}”)]
[路线(“/按城市”)]
公共异步任务GetByCityAsync(字符串城市)
{
var family=await DocumentDBRepository.GetFamilyAsyncByFamilyID(城市);
if(family==null)
{
返回NotFound();
}
返回新的ObjectResult(族);
}
}
} 
当我运行时,它返回404,并且断点未命中GetByCityAsync(字符串城市)。对我应该研究的问题有什么建议吗?谢谢

所以我认为我们应该使用URL,比如where xxxx=城市名称

根据您的描述和代码,我建议您可以修改关于GetByCityAsync的路由

改变

[路线(“/ByCity”)]

[Route("ByCity/{city}")]