添加到 .NET 中的 odata 集合 属性

Add to odata collection property in .NET

使用 visual studio C# .NET 中的 odata-v4 服务连接,我得到了一个 testDefinition 类型的实体。 testDefinition 有 属性 称为 features,它是 feature.

类型实体的集合

在 DB 中,testDefinitionfeature 是多对多,有一个结点 table。

在我的代码中,我添加了对为数据库的 EDMX 提供服务的 Web 服务的服务引用。

代码生成正确,我 运行:

var dsc = new Container(new Uri("http://webserver/webapi/odata/"));

var someFeature = new Feature
{
    name = $"Sample feature created with C# {DateTime.UtcNow}",
};

var someOtherFeature = new Feature
{
    name = $"Sample other feature created with C# {DateTime.UtcNow}",
};

dsc.AddToFeature(someFeature);
dsc.AddToFeature(someOtherFeature);

dsc.SaveChanges();

var someTestDefinition = new TestDefinition
{
    name = $"Sample test created with C# {DateTime.UtcNow}",
    description = $"A nice succinct description",
};    

dsc.AddToTestDefinition(someTestDefinition);
dsc.SaveChanges();

someTestDefinition.features.Add(someFeature);
someTestDefinition.features.Add(someOtherFeature);

dsc.SaveChanges();

问题是从测试定义到特征的映射没有记录在数据库中。

有没有人遇到过这个问题,或者更好的是,解决了这个问题?

供参考:

我不能说这是什么时候实现的,但它在以后的版本中有效,我可以确认的最早版本是 OData.Client v 7.6.2

如果这对使用 当前 版本的 OData ClientServer[= 的任何新用户来说是个问题21=] 库 它通常表示架构未正确配置或发布。

还要检查 API 使用类似的当前 OData 运行时,上面的测试是针对 API 和 Microsoft.AspNet.OData v7.3.0

执行的