gpt4 book ai didi

c# - 在 C# Web API 的 Controller 中隐藏模型类成员?

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:34 26 4
gpt4 key购买 nike

我正在尝试学习和理解 C# Web API 和 MVC。我了解简单的教程,其中有一个简单的 Product 或 Person 类作为模型,然后制作一个 CRUD Controller 来使用该模型。

但我需要它更复杂一点,无法弄清楚。

我有以下模型:

public class PersonModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public DateTime LastUpdated { get; set; }
}

与我数据库中的表相同。 LastUpdated 列有一个默认约束:(GETUTCDATE())

我对在 PersonsController 的 POST 方法中公开 LastUpdated 不感兴趣:

 public void PostPerson(PersonModel person)
{
// Upload person to database
}

因为这样就可以在 LastUpdated 中插入一个无效的日期时间——或者我必须在我的业务逻辑中手动设置 LastUpdated,但为什么不让我的 SQL 服务器来做呢?无论如何要在 PostPerson 中隐藏 LastUpdated?作为旁注,我希望能够在我的 GetPerson 方法中显示 LastUpdated。这怎么可能?

最佳答案

在类中实现属性时,可以为 get 和 set 访问器指定不同的访问修饰符。

无论您是自己实现属性还是使用自动属性,都是如此。

访问修饰符的不同组合包括:

get/set both public – 客户端可以读/写属性值
get/set both private – 客户无权访问该属性
公开,设置私有(private) – 属性是只读的
私有(private),设置公共(public) – 属性是只写的

// get/set both public
public string Name { get; set; }

// get/set both private
private string SecretName { get; set; }

// public get => read-only
public string CalcName { get; private set; }

// public set => write-only
public string WriteOnlyName { private get; set; }

关于c# - 在 C# Web API 的 Controller 中隐藏模型类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747531/

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