我对这些技术还很陌生。我遇到了一个小问题,它可以通过编写一些惰性代码来修复......但OrmLite和ServiceStack简化了很多东西,我想知道是否有更好的方法来做到这一点。
所以,我有一个数据模型:
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对象以保存到数据库并使用数据(lp_cctv_camera
)填充new lp_cctv_camera().PopulateWith(CamDetail);
的实例。
这就是:I_sid
列是一个NOT NULL列,其默认约束为该行生成一个哈希。这是数据库负责的事情,所以新的项目不应该INSERT
这个列;它应该由约束生成。
忽略此列时,db.Insert(lp_cctv_camera)
有什么办法吗?我在定义上尝试了[Ignore]
属性,但我们仍然需要在定义中将现有的I_sid
发送给客户端。我真的在文档中找不到任何东西。任何帮助表示赞赏!
答案 0 :(得分:2)
我们添加了一个明确的[IgnoreOnInsert]
属性,您可以使用该属性忽略插入的available on v4.5.13 on MyGet上的特定属性。
在v4.5.13之前,你可以使用[Compute]
属性来获得类似的行为,并在插入过程中忽略字段,例如:
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
}