【问题标题】:Odata v4 web api 2.2 context is not currently tracking the entityOdata v4 web api 2.2 上下文当前未跟踪实体
【发布时间】:2014-10-21 14:29:46
【问题描述】:

使用 c# 处理端点 - 尝试向用户添加角色(样板 .NET 用户表) 试图确定更新关系表的正确方法。

var context =new WebClient.Default.OptimizedContextContainer(new Uri("service_hostUri"));
context.Format.UseJson();

User userToUpdate = context.User.ByKey(new Dictionary<string, object>() { { "userId", Guid.Parse("some_guid" } }).GetValue();

Role roleToAdd = context.Role.ByKey(new Dictionary<string, object> { { "roleId", Guid.Parse("some_guid" } }).GetValue();

userToUpdate.Roles.Add(roleToAdd);
context.UpdateObject(userToUpdate.Roles);

context.SaveChangesAsync();

UpdateObject 调用更新用户角色时代码失败 - '上下文当前未跟踪实体' - 如果我消除了 UpdateObject 调用并仅使用 saveChangesAsAsync 则没有错误,但未添加角色 如何以这种方式向用户添加角色?

【问题讨论】:

    标签: c# asp.net-web-api odata


    【解决方案1】:

    导航属性是你应该使用的集合

    AddToObject(userToUpdate,"Roles",RoleToAdd)
    

    而不是

    context.UpdateObject(userToUpdate.Roles);
    

    并删除

    userToUpdate.Roles.Add(roleToAdd);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多