ApiController 可以返回一个包含其他对象集合的对象吗?

2023-12-13

如果我有一个Customer仅具有简单属性的类(例如Name等)然后我可以创建一个CustomersController源自于ApiController,并使用 URL 查询我的 Customer 对象/api/customers.

同样,如果我有一个Order具有简单属性的类(Description, Amount)然后我可以创建一个OrdersController并以同样的方式访问它。

但是,如果我随后将属性添加到我的Customer列出的类Order与此相关Customer:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    // ...
    public virtual ICollection<Order> Orders { get; set; }
}

...然后当我尝试使用查询时/api/customers我收到 500 服务器错误。我可以在其中放置一个断点CustomersController可以看到它确实调用了正确的方法,并尝试返回一个值。然而,在框架内部的某个地方,它无法将其转换为 HTTP 响应。

看起来无法序列化Orders信息和/或将其打包以用于 HTTP 响应,但我不确定需要做什么才能实现这一点。或者只是 WebApi 的东西不是为了返回复杂对象而设计的?


Update:我的代码在这里:https://gist.github.com/43ed2f29f8adfb44cef6


Update 2:有关我收到的错误的更多信息:

Server error
The website encountered an error while retrieving http://localhost:1031/api/customers/6.

可能会因维护而停机 或配置不正确。 以下是一些建议: 稍后重新载入此网页。 HTTP 错误 500(内部服务器错误):服务器尝试满足要求时遇到意外情况 要求。

Intellitrace 日志显示以下内容:https://i.stack.imgur.com/8R1XL.png

[我简直不敢相信 Intellitrace 窗口不允许我复制文本,因此我必须实际打印屏幕并上传图像。今年是哪一年?】


有关的:ASP.Net Web API 在 VS 中正确显示,但给出 HTTP 500


您正在传递一个实体框架实体,这会导致问题。您需要数据传输对象来传递和接收数据。因为您将实体绑定在一起,所以它不允许您序列化数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ApiController 可以返回一个包含其他对象集合的对象吗? 的相关文章

  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • C#6 中的长字符串插值行

    我发现 虽然字符串插值在应用于现有代码库的字符串 Format 调用时非常好 但考虑到通常首选的列限制 字符串对于单行来说很快就会变得太长 特别是当被插值的表达式很复杂时 使用格式字符串 您将获得一个可以拆分为多行的变量列表 var str
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 来自 3rd 方库的链接器错误 LNK2019

    我正在将旧的 vc 6 0 应用程序移植到 vs2005 我收到以下链接器错误 我花了几天时间试图找到解决方案 错误LNK2019 无法解析的外部符号 imp 创建AwnService 52 在函数 public int thiscall

随机推荐

  • 这是 async-await 如何工作的正确图表吗?

    我将尝试就以下问题发表演讲async await我正在创建一个流程图 试图显示可能的执行顺序 我试图根据这些段落来确定这一点 异步方法的开头就像任何其他方法一样执行 方法 也就是说 它同步运行 直到遇到 等待 或 抛出异常 await 关键
  • 为什么我在 JavaScript 中点击按钮后该值显示然后又消失?

    每当我单击按钮时 我都会在文本字段 结果 中得到一秒钟的输出 然后它就消失了 为什么它消失了 我试图将该功能放在身体中 它没有帮助
  • 对 pthread 互斥体涉及的完整内存屏障的澄清

    我听说在处理互斥锁时 必要的内存屏障是由 pthread API 本身处理的 我想了解有关此事的更多细节 这些说法是真的吗 至少在最常见的架构上是这样吗 编译器是否能够识别这种隐式屏障 并在生成代码时避免对操作 从本地寄存器读取进行重新排序
  • mysqldump 没有数据库名称

    是否可以以 xml 格式转储数据 而输出中不包含数据库名称 如果我使用 xml 选项转储这样的输出 gt mysqldump xml my database name my table gt my table xml 然后我的输出是这样的
  • 如何使用 UDID 或设备令牌进行安全登录?

    所以我正在制作一个应用程序 我希望用户能够添加 编辑和评价内容 但我不想强迫他们注册 相反 我计划仅使用他们的设备 ID 或设备令牌来识别他们 我计划同时制作 iPhone 和 Android 版本 因此我正在寻找通用解决方案 但 iPho
  • JSF - 即使退出应用程序后,我的 backbean 的字段也没有被清理

    我是 JSF 的初学者 遇到以下问题 我有一个带有 backbean 的视图 我填充了一些值来执行搜索并显示结果 当我出去并返回应用程序时 最新请求的值仍保留在那里 我在我的 bean 中使用以下注释 Component requestBe
  • Java 8 LocalDateTime 正在解析无效的日期时间

    我想在客户端验证日期时间 所以我编写了以下代码 但我没有得到异常 而是得到了 2 月 31 日日期字符串的正确日期时间对象 这显然是一个无效日期 public class Test public static void main Strin
  • Azure Database for MySQL - webapp Nodejs

    所以我一直在使用本地 mysql 工作台开发一个网络应用程序 我最近将数据库移至 Azure Database for MySQL 在我离开当地之前 一切都运转正常 我的所有网页都工作正常 现在 4 个页面中只有 2 个可以工作 当我单击损
  • Google 地图 API - 获取我的自定义地图 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我在 Google API 中搜索下载地图的方法 google com mymaps 我所说的下载地图是指 POI 除了 Google 地图引擎 a
  • 如何将加号与字符类一起使用作为正则表达式的一部分?

    在 cygwin 中 这不会返回匹配项 echo aaab grep ab 但这确实返回一个匹配项 echo aaab grep ab ab aaab 这两个表达方式不一样吗 有没有办法表达 字符类的一个或多个字符 而无需输入字符类两次 如
  • 需要显式转换以指向 void 指针[重复]

    这个问题在这里已经有答案了 我有以下函数签名 int foo void 我试图给它一个指向char指针 即char 我的编译器抱怨以下警告 argument of type char is incompatible with paramet
  • 由于缺少 libmysql,在 Windows 上安装 mysql-2.9.0 gem 失败

    我正在尝试在 Windows Server 2003 上安装 Redmine 2 1 4 为了让它工作 我需要安装activerecord mysql adaptergem 而这又似乎依赖于mysql 2 9 0 gem 我从下载了后者ru
  • 在 CherryPy 中使用映射

    In the 调度 其他调度员 CherryPy 文档部分 有一个 Django 风格的正则表达式到视图函数映射定义的示例 但没有说明如何将其附加到cherrypy tree 你应该如何注册这个映射 Edit 基于 正则表达式 URL 映射
  • 来自 C# 的 Azure BLOB 存储 REST 调用

    我正在尝试通过控制台应用程序与 Azure Blob 存储上的容器进行通信 我无法使用 SDK 因此 REST 是我唯一的选择 语言是 C 带有 NET 4 5 2 我已经尝试过这两个代码并且都返回相同的错误 Azure Rest API
  • Java 命名参数的名称(对于 Oracle JDBC 函数结果)

    我将调用一个函数 并按名称设置一些参数 例如 Connection c null ResultSet rs null String query PreparedStatement ps CallableStatement cs null t
  • 使用 Boto3 在 S3 中设置 AWS 内容类型

    我正在尝试使用 Amazon 将网页上传到 S3 存储桶Boto3 SDK对于Python 我在设置时遇到问题Content Type AWS 不断创建新的元数据密钥Content Type除了我使用此代码指定的之外 Upload a ne
  • 同一张表的双重 JOIN 两次

    我在查询时遇到了一个小问题 我需要对同一个表进行两次双重联接 我有这两张表 list couples id p 1 p 2 1 Topolino Minnie 2 Pippo Pluto 3 Paperino Paperone rank y
  • 调用 DLL 方法时,方法的类型签名与 PInvoke 不兼容

    我有一个带有接口的DLL struct modeegPackage uint8 t version 2 uint8 t count packet counter Increases by 1 each packet uint16 t dat
  • 通过电子邮件发布 Karate-Cucumber html 报告

    如何通过电子邮件发布 Karate Cucumber 生成的完整 html 报告 Thanks 这就是持续集成服务器的用途 例如詹金斯 这是所有团队通常都会做的事情 例如看这个答案 https stackoverflow com a 484
  • ApiController 可以返回一个包含其他对象集合的对象吗?

    如果我有一个Customer仅具有简单属性的类 例如Name等 然后我可以创建一个CustomersController源自于ApiController 并使用 URL 查询我的 Customer 对象 api customers 同样 如