我正在尝试学习和理解 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; }
