Asp.net core .NetCore 3 Web API:从控制器响应中排除模型对象

Asp.net core .NetCore 3 Web API:从控制器响应中排除模型对象,asp.net-core,asp.net-core-webapi,ef-core-3.0,Asp.net Core,Asp.net Core Webapi,Ef Core 3.0,我正在学习.netcore3webapi的基础知识,并用它创建一个基本的应用程序,我被这个问题困住了 我有一个带有外键的模型,如下所示: 公共类规则 { 公共长Id{get;set;} 公共长类别ID{get;set;} 公共类别{get;set;} [必需] [长度(50)] 公共字符串关键字{get;set;} } 我可以通过传递CategoryId标识符发布新规则。但是,当我执行一个GET请求时,我会得到FK属性(CategoryId)和仅为导航目的而引用的Category对象。 请求-

我正在学习.netcore3webapi的基础知识,并用它创建一个基本的应用程序,我被这个问题困住了

我有一个带有外键的模型,如下所示:

公共类规则
{
公共长Id{get;set;}
公共长类别ID{get;set;}
公共类别{get;set;}
[必需]
[长度(50)]
公共字符串关键字{get;set;}
}
我可以通过传递
CategoryId
标识符发布新规则。但是,当我执行一个GET请求时,我会得到FK属性(
CategoryId
)和仅为导航目的而引用的
Category
对象。 请求-响应示例:

{
“id”:1,
“类别类型”:“费用”,
“类别”2,
“类别”:空,
“关键字”:“测试”
}
是否有一种简单/快速的方法可以避免控制器暴露模型元素?使用DataAnnotation、Fluent API还是仅仅使用服务配置

顺便说一下,我也在起诉EFCore


谢谢。

一种方法是使用


如果
包含
对象或之前将其加载到上下文中,则只能获取
类别
对象。您如何
获取
规则
?(代码)。在这种情况下,我希望从json响应中排除Category对象。是的,我的意思是:是您自己导致了对象的包含。EF不会自发地这样做。您是否使用AutoMapper或其他映射库,或者否?
return JsonConvert.SerializeObject(new
            {
               id = rule.id,
               //more fields as needed...

            });