Petapoco缺少属性IgnoreOnInsert,IgnoreOnUpdate

时间:2017-04-08 13:25:58

标签: umbraco7 petapoco

我正试图在我的Umbraco网站上使用Petapoco。在我的poco上,我有一个名为Created的列,它有一个默认的sql值(getDate())。我希望在Petapoco的插入和更新时忽略该列,但不读取。

任何想法我怎样才能优雅地实现这一目标?也许使用自定义映射器或在Petapoco引擎中包含一些新属性(如IgnoreOnInsert,IgnoreOnUpdate)。

我一直在使用一些黑客,其中一个是每个表有两个poco,一个用于插入更新,一个用于阅读。但很难接受这一点令人满意。

2 个答案:

答案 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