首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB ODataController Get方法

MongoDB ODataController Get方法
EN

Stack Overflow用户
提问于 2014-10-02 02:42:57
回答 3查看 1.1K关注 0票数 1

如何将ObjectId传递给ODataController GET方法?

因为ObjectId是文档的唯一标识符,所以我的第一个想法是这样做,其中'542978c4e4b0e67da1edc7f3‘是ObjectId:

代码语言:javascript
复制
odata/Teams(542978c4e4b0e67da1edc7f3)

但是当我这样做的时候,我的GET方法没有接收到它,ObjectId为空{000000000000000000000000}:

代码语言:javascript
复制
public Team GetTeam(ObjectId id)
        {
            var teams = mongoDatabase.GetCollection("Teams");
            var team = teams.FindOneById(id);
....

我刚刚开始使用MongoDB,正确的方法是什么,或者我完全使用了错误的方法?

EN

回答 3

Stack Overflow用户

发布于 2014-10-10 13:50:18

您可能需要在此处查看教程http://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/ODataServiceSample/ODataService。您似乎缺少输入参数的FromODataUri。

票数 0
EN

Stack Overflow用户

发布于 2014-10-11 17:14:15

这应该是可行的:

代码语言:javascript
复制
[EnableQuery]
public IHttpActionResult GetTeam([FromODataUri] string id)
{
    var teams = mongoDatabase.GetCollection("Teams");

    // convert the string 'id' to BsonValue 'bsonId'
    ......

    var team = teams.FindOneById(bsonId);

    // convert 'team' to the entity type Team object 'team'
    ......

    return Ok(team);
}

然后通过以下方式查询实体集:

代码语言:javascript
复制
GET odata/Teams('542978c4e4b0e67da1edc7f3')

as OData URL支持字符串作为参数。

票数 0
EN

Stack Overflow用户

发布于 2020-08-29 03:48:02

ObjectId是一个类。使用属性注释“key”和annotation FromODataUri

代码语言:javascript
复制
public Team GetTeam([FromODataUri] string key)
{
    var teams = mongoDatabase.GetCollection("Teams");
    var team = teams.FindOneById(ObjectId.Parse(key));
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26148335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档