2017-07-17 28 views
2

我对这些技术还很陌生。我遇到了一个小问题,可以通过编写一些惰性代码来解决这个问题......但OrmLite和ServiceStack简化了很多事情,我想知道是否有更好的方法来做到这一点。ServiceStack OrmLite:在数据模型中使用默认的数据库约束而不是空值

所以,我有一个数据模型:

public class cctv_camera 
{ 
    [AutoIncrement] 
    public int I_id { get; set; } 
    public string I_sid { get; set; } 
    public string C_store_id { get; set; } 
    // .... others 
} 

这个数据模型映射到一个表,cctv_camera。还有另一个模型(称为CamDetail)在从该表中加入后发送给客户端。我们在POST上从客户端接收CamDetail对象以保存到数据库并使用数据(new lp_cctv_camera().PopulateWith(CamDetail);)填充lp_cctv_camera的实例。

以下是这个问题:I_sid列是一个NOT NULL列,其中有一个默认约束条件,用于为该行生成散列值。这是数据库负责的事情,所以新项目不应该是INSERT这一列;它应该由约束生成。

有什么办法可以db.Insert(lp_cctv_camera)而忽略这一栏?我已经尝试了定义中的[Ignore]属性,但我们仍然需要在定义中将现有的I_sid发送给客户端。我真的找不到文档中的任何内容。任何帮助表示赞赏!

回答

2

我们已经添加了明确的[IgnoreOnInsert]属性,您可以使用该属性忽略Insert上的特定属性,即available on v4.5.13 on MyGet

此前v4.5.13你可以使用[Compute]属性来获得类似的行为和插入过程中忽略的字段,e.g:再次

public class cctv_camera 
{ 
    [AutoIncrement] 
    public int I_id { get; set; } 
    [Compute] 
    public string I_sid { get; set; } 
    public string C_store_id { get; set; } 
    // .... others 
} 
+2

mythz救援。非常感谢! – joh04667

相关问题