我一直在试图找出答案,但没有任何运气。假设我有一个类似于这样的模型:
public class A
{
public int Id {get;set}
public ICollection<B> Bs {get;set;}
}
public class B
{
public int Id {get;set}
public ICollection<C> Cs {get;set;}
}
public class C
{
public int Id {get;set}
public string Something {get
我正在研究在WebApi中使用odata。到目前为止一切都很好,我喜欢它比wcf数据服务更灵活。
但是,当我尝试在模型中使用虚拟IQueryable属性时,我遇到了问题。
举个例子,我有这些模型类:
public class MainItem
{
public int Id { get; set;}
public virtual IEnumerable<SubItem> SubItems { get; set;}
}
我的MainItemsController看起来像这样
public class MainItemsController : EntitySetCon
我有一个使用Odata v3的Web,有些实体有一个复合密钥,如这个:
public class AerodromoAdministracaoData
{
[Key]
[Column("idAerodromo", Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public short IdAerodromo { get; set; }
[Key]
[Column("data", Order = 1, TypeName = "da
我想知道是否有可能在同一个ODataController中使用参数实现两个不同的get方法。这就是我想要做的,但这是行不通的。我能做什么?
在ODataController中:
public class ProductsController : ODataController
{
private readonly ProductsService _service;
public ProductsController()
{
_service = new ProductsService();
}
[EnableQuery]
public
我有一个控制器:
using System.Web.Http;
using System.Web.OData;
public class InvRecipientAutoInvoiceController : ODataController
{
// GET: odata/InvRecipientAutoInvoice
[EnableQuery]
public IQueryable<Inv_RecipientAutoInvoice> GetInvRecipientAutoInvoice()
{
我正在使用WebAPI oData。要求更新实体的导航属性。
public class Question
{
public int QuestionId { get; set; }
public string QuestionTitle { get; set; }
public string QuestionBody { get; set; }
public List<Response> Responses { get; set; } //navigation property
}
public class Response
{
publi
我是OData的新手。为了学习目的(在教程的指导下),我设置了一个示例WebApi,如下所示(只粘贴我认为相关的内容)。
配置:
使用DataApi.Models;
using Microsoft.OData.Edm;
using System.Net.Http.Headers;
using System.Web.Http;
using System.Web.OData.Batch;
using System.Web.OData.Builder;
using System.Web.OData.Extensions;
public static class WebApiConfig
{
p
我有结合ASP.NET核心的路由OData问题。我有以下课程 public class Publisher
{
public int Id { get; set; }
public string Name { get; set; }
public Category Category { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Type { get; set; }
} 配置为 public void Configure(IApplic
我在VS2013下有一个OData V3 C#项目,我想在运行时在一个单独的类库中加载/注入一个ODataController,并让该服务有一个路由。问题是我无法获得要解析到控制器的路由。例如
"No type was found that matches the controller named 'TestsController'"
下面是我的控制器在单独的类库中的样子:
namespace WebApi.Extensions
{
public class TestsController : ODataController
{
var t =
知道为什么我的参数被返回为null吗?这是我的控制器。
[HttpPost]
[EnableQuery]
public IHttpActionResult LoadReports(ODataActionParameters parameters)
{
if (!ModelState.IsValid)
{
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
int key = (int)parameters["id"];
int year = (
我有一个简单的打开类型,包含动态属性:
public class Person {
[Key]
public string Uid { get; set; }
public IDictionary<string, object> DynamicProperties { get; set; }
}
在我的控制器中,我填充如下这些属性:
public IHttpActionResult Get([FromODataUri] string key) {
Person person;
// ...
person.DynamicPro
我使用的是OData v4,模型是为我们的.NET Web配置的EdmModel生成器。
我有两个这样定义的模型:
public class Customer
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public string Category { get; set; }
public Customer OrderCustom
我有一个在Azure中托管的WebAPI项目,它为移动应用程序提供JSON服务。现在我想添加一个OData服务来向业务用户提供数据。似乎很难将两个独立的WebAPI项目托管在一个Web角色中,因此我试图在一个项目中运行这两个服务。
我遇到的问题是,对这两个类都使用相同的Model类,因此它们都需要相同的Controller类名,例如ProductsController。如果我试图将控制器放到不同的名称空间中,就会得到一个错误:
Multiple types were found that match the controller named 'Products'.
This c
假设我们创建了一个示例应用程序,让我们称之为MyOdataApp:我无法为这两个模型动态地创建控制器,这在Program.cs中可以看到,我也没有错误告诉我的错误所在。这些模型中的内容是无关的,让我们假设它们是:Order & LineItem
namespace MyOdataApp.Models
{
public class Order
{
public string OrderId { get; set; } = null!;
public string? CustomerName { get