0

我在 Asp.Net core 5 中编写了一个启用 oData4 的 API。该 API 公开了 HttpGet、HttpPost、HttpPut、HttpPatch 和 HttpDelete。我用邮递员测试了 API,一切正常。包括,HttpPatch,我在尝试使用 Microsoft.oData.Client 时遇到问题。

在客户端,我编写了一个使用 Microsoft.oData.Client 的控制台应用程序。问题出在 API 方面。我在 HttpPatch Action 上设置了一个断点,当通过“Microsoft.oData.Client”访问时,Delta 始终为空。我用“Simple.OData.Client”和邮递员测试了HttpPatch,一切都按预期工作。

客户端代码为:

public class MyContainer : DataServiceContext
{
public DataServiceQuery<SinergiaView> SinergiaViewSet { get; }
public MyContainer(Uri serviceRoot) : base(serviceRoot)
{
SinergiaViewSet = base.CreateQuery<SinergiaView>("SinergiaViewSet");
}
public void AddSinergiaView(SinergiaView entity)
{
base.AddObject("SinergiaViewSet", entity);
}
}
static async Task Main(string[] args)
{
var mylocalContext = new MyContainer(new Uri("https://localhost:44666/odata"));
var myEntity = mylocalContext.SinergiaViewSet.Where(p => p.PK == 1).FirstOrDefault();
myEntity.TimeStamp = 9;
mylocalContext.UpdateObject(myEntity);
await mylocalContext.SaveChangesAsync();
}

我一直在尝试解决一个多星期,但没有成功。我放弃了,我正在寻求任何人的帮助。我非常感谢对这个问题的任何贡献

4

0 回答 0