Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何防止某些类属性从Web API返回?_Asp.net_Asp.net Web Api_.net Core_Entity Framework Core - Fatal编程技术网

Asp.net 如何防止某些类属性从Web API返回?

Asp.net 如何防止某些类属性从Web API返回?,asp.net,asp.net-web-api,.net-core,entity-framework-core,Asp.net,Asp.net Web Api,.net Core,Entity Framework Core,我正在使用EntityFrameworkCore构建一个引用类库的.NETCoreWebAPI。我们是数据库第一,因此将定期覆盖数据类以刷新它们 例如,对于具有FirstName、LastName和Password的Employee对象,如何防止Password属性随该对象一起传回 如果我需要操作数据类,我是否必须记住每次删除/重新创建数据类时都要手动重新编辑?谢谢你的帮助 您应该使用数据传输对象(DTO)。使用映射器填充自定义属性并将其发送到响应。您也可以尝试以下方法(匿名类型): 您公开的视

我正在使用EntityFrameworkCore构建一个引用类库的.NETCoreWebAPI。我们是数据库第一,因此将定期覆盖数据类以刷新它们

例如,对于具有FirstName、LastName和Password的Employee对象,如何防止Password属性随该对象一起传回


如果我需要操作数据类,我是否必须记住每次删除/重新创建数据类时都要手动重新编辑?谢谢你的帮助

您应该使用数据传输对象(DTO)。使用映射器填充自定义属性并将其发送到响应。您也可以尝试以下方法(匿名类型):


您公开的视图模型类API的序列化和传递不应与实体框架使用的数据模型的类相同。因此,根据我希望调用客户端访问的对象,我基本上应该创建一个新对象(从数据上下文返回的完整对象)而不包括我不想公开的属性?我可以这样做,但似乎有很多管道。确切地说,采用体系结构会带来一些困难,但会使代码干净且易于维护。但是你可以使用
匿名类型
,而无需创建新对象,正如我在回答和使用以及操作结果过滤器中所示,如果你想要一个干净的代码的话。
var employee = ...get from db;

return Ok(new
{
    employee.FirstName,
    employee.LastName
});