gpt4 book ai didi

c# - 从 c# 中的 WebApi OData (EF) 响应中排除属性

转载 作者:太空狗 更新时间:2023-10-29 18:01:15 26 4
gpt4 key购买 nike

我正在使用 C# 中的 WebApi 项目(首先使用 EF 代码),并且我正在使用 OData。我有一个“用户”模型,其中包含 ID、姓名、姓氏、电子邮件和密码。

例如在 Controller 中我有这样的代码:

// GET: odata/Users
[EnableQuery]
public IQueryable<User> GetUsers()
{
return db.Users;
}

如果我调用/odata/Users,我将获得所有数据:ID、姓名、姓氏、电子邮件和密码。

如何从结果中排除密码但在 Controller 中保持可用以进行 Linq 查询?

最佳答案

我来晚了一点,但我认为这可能对您有所帮助。

我假设您出于存储目的想要加密密码。您是否看过使用 odata 操作来设置密码?使用操作可让您在设置实体时忽略密码属性,同时仍向最终用户公开更新密码的干净方式。

首先:忽略密码属性

builder.EntitySet<UserInfo>("UserInfo").EntityType.Ignore(ui => ui.Password);

第二:添加你的 odata Action

builder.EntityType<UserInfo>().Action("SetPassword").Returns<IHttpActionResult>();

然后将 SetPassword 方法添加到您的 UserInfoController。

关于c# - 从 c# 中的 WebApi OData (EF) 响应中排除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com