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

时间:2018-01-30 22:52:33

标签: c# entity-framework-6 odata odata-v4

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

在数据库中,testDefinitionfeature有多个联结表。

enter image description here

在我的代码中,我为服务于DB的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();

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

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

供参考:

enter image description here

1 个答案:

答案 0 :(得分:1)

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

如果对于当前版本的 OData ClientServer 库的任何新用户来说,这通常表明架构是未正确配置或发布。

还要检查 API 是否使用了类似的当前 OData 运行时,上述测试是使用 Microsoft.AspNet.OData v7.3.0 对 API 执行的