为什么Odata在使用Extend时无法解析JSON?
Why does Odata can't parse JSON when using Extend?
我在我的项目 Web Api (.Net Core 3.1) 中使用 OData v4。我正在使用 Devart Linqconnect 生成我的模型。
当我想使用 "Extend" 时,我收到消息 "can't parse JSON. Raw value"。
"Select" 和 "Filter" 工作正常。我想知道为什么 "Extend" 无法正常工作。
[EnableQuery(PageSize = 2)]
[HttpGet]
public IActionResult Get(ODataQueryOptions<Tasks_Object> query)
{
var items = query.ApplyTo(DBContext.Tasks_Objects.Where(i => i.Delete== null));
return Ok(items);
}
我的 controller/action 在 EDMModel 中的配置。
var tasks_object = builder.EntitySet<Tasks_Object>("Task").EntityType.HasKey(e => e.ZAD_ID);
var task = builder.EntityType<Task>().HasKey(a=>a.ZAD_ID);
问题已解决。
"Extend" 无法使用 LinqConnect,因为 LQ 使用 属性 EntitySet<> 作为与其他 table 的关系,但我们可以更改它。
EF Core 没有问题,因为 EF Core 将属性用作 List<> 而不是 EntityRef。
我在我的项目 Web Api (.Net Core 3.1) 中使用 OData v4。我正在使用 Devart Linqconnect 生成我的模型。 当我想使用 "Extend" 时,我收到消息 "can't parse JSON. Raw value"。 "Select" 和 "Filter" 工作正常。我想知道为什么 "Extend" 无法正常工作。
[EnableQuery(PageSize = 2)]
[HttpGet]
public IActionResult Get(ODataQueryOptions<Tasks_Object> query)
{
var items = query.ApplyTo(DBContext.Tasks_Objects.Where(i => i.Delete== null));
return Ok(items);
}
我的 controller/action 在 EDMModel 中的配置。
var tasks_object = builder.EntitySet<Tasks_Object>("Task").EntityType.HasKey(e => e.ZAD_ID);
var task = builder.EntityType<Task>().HasKey(a=>a.ZAD_ID);
问题已解决。 "Extend" 无法使用 LinqConnect,因为 LQ 使用 属性 EntitySet<> 作为与其他 table 的关系,但我们可以更改它。
EF Core 没有问题,因为 EF Core 将属性用作 List<> 而不是 EntityRef。