我正试图在我的Umbraco网站上使用Petapoco。在我的poco上,我有一个名为Created的列,它有一个默认的sql值(getDate())。我希望在Petapoco的插入和更新时忽略该列,但不读取。
任何想法我怎样才能优雅地实现这一目标?也许使用自定义映射器或在Petapoco引擎中包含一些新属性(如IgnoreOnInsert,IgnoreOnUpdate)。
我一直在使用一些黑客,其中一个是每个表有两个poco,一个用于插入更新,一个用于阅读。但很难接受这一点令人满意。
答案 0 :(得分:0)
我通常只创建一个类构造函数并在那里设置date属性。像
这样的东西public class WhatEvs
{
...
public WhatEvs()
{
DateCreated = DateTime.Now;
}
}
答案 1 :(得分:0)
如果有人仍然对此感兴趣,我最终找到了一个很好的解决方案。 那就是停止使用Petapoco并切换到NPoco,它有一个很好的属性叫做'ComputedColumn'。 如果使用[ComputedColumn]属性修饰属性,则当NPoco生成插入和更新查询时,将不会使用该属性,但它将用于选择查询。 这让我很好地拥有像CreatedDate或UniqueGuid这样的数据库处理值,我没有触及,但在查询时能够获得。 感谢Aaron在这里友好地回答了这个问题: https://github.com/CollaboratingPlatypus/PetaPoco/issues/421#issuecomment-348390149