gpt4 book ai didi

c# - BreezeJs Ef Core迁移问题

转载 作者:行者123 更新时间:2023-11-30 21:34:39 29 4
gpt4 key购买 nike

最近我们将后端 web api 从 .Net 4.61 升级到 .Net Core 2.0,我们正在使用 Breezejs,我们对此很满意,升级后我们遇到了两个无法在线找到答案的问题:

用 did 升级所有的是:

我们使用这个 git 作为指导:https://github.com/mikemichaelis/dnc/

但总结一下:

  1. 使用 .Net 标准库项目和 Scaffold-DbContext(具有所有需要的依赖项)

  2. 使用 Breeze 和 Ef Core 依赖项创建 .Net Core 2.0 WebApi 项目

  3. 将我们的旧 Controller 迁移到新项目并移除 Bug

所以这里首先是问题:对于只返回实体的 List 方法,它工作正常

但是对于返回单个 Object 的方法,它给出:

    [HttpGet]
public Choice ChoiceByID(int ID)
{
var result = this.PersistenceManager.Context.Choice
.SingleOrDefault(n => n.ID == ID);
return result;
}

breeze error Error: Unable to convert this endpoint to an IQueryable

如果我们更改代码以返回 IQueryable:

    [HttpGet]
public IQueryable<Choice> ChoiceByID(int ID)
{
var result = this.PersistenceManager.Context.Choice
.Where(n => n.ID == ID);
return result;
}

它会给出:

breeze error Error: This EntityQuery ctor requires a valid json string. The following is not json

到目前为止还没有解决问题

最佳答案

经过一些挖掘和克隆 breeze git,我发现了问题所在efcore 似乎轻而易举地改变了你应该如何称呼你的终点:

之前第一个参数不存在(或者我没有使用它)

request detail in fiddler

所以为了解决问题:

  1. 按照@Nkosi 提供的方式更改您的 Controller

  2. 在您的客户端中,添加以下行(在您的构造函数中):

    从“breeze-client”导入 * as breeze;//在顶部导入

    breeze.config.initializeAdapterInstance('uriBuilder', 'json')//添加到您的构造函数

关于c# - BreezeJs Ef Core迁移问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49965214/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com