【发布时间】:2018-05-05 04:01:26
【问题描述】:
我有一个 OData Beta + ASP.Net Core + EF 项目。我正在尝试解决 OData 控制器功能,但在尝试返回相关实体时遇到错误:
模型/Customer.cs
public class Customer
{
public int Id { get; set; }
public string Standing { get; set; }
public List<Person> People { get; set; }
public List<Address> Addresses { get; set; }
}
CustomersController.cs
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Bookings_Server.EF;
using Bookings_Server.OData.Models;
using Microsoft.AspNet.OData;
using Microsoft.AspNet.OData.Routing;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Http;
namespace Bookings_Server.OData.Controllers
{
[Produces("application/json")]
[ODataRoutePrefix("customers")]
public class CustomersController : ODataController
{
private readonly DataContext _context;
public CustomersController(DataContext context)
{
_context = context;
}
[EnableQuery]
[ODataRoute("({key})/people")]
public IQueryable<Customer> GetPeople([FromODataUri] int key)
{
var result = _context.Customers.Where(m => m.Id == key).Select(m => m.People).ToList();
return (result);
}
}
我在结果变量(在返回中)下收到一个智能感知错误,说明:
Cannot implicitly convert type 'System.Collections.Generic.List<System.Collections.Generic.List<Bookings_Server.OData.Models.Person>>' to 'System.Linq.IQueryable<Bookings_Server.OData.Models.Customer>'. An explicit conversion exists (are you missing a cast?)
我一直在查看其他 OData V4 示例,但它们都会引发隐式转换错误(假设这是在 Aps.Net Core 上工作的不同之处)。
【问题讨论】:
标签: c# asp.net-core odata