首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Update Version字段,如果每个表有一个序列的update行

Update Version字段,如果每个表有一个序列的update行
EN

Stack Overflow用户
提问于 2011-09-12 17:21:52
回答 2查看 179关注 0票数 2

我有一个带有“版本”字段的表,每个表必须有唯一的值(可能是序列)。行更新时,版本值必须更新。

我使用的是Fluent NHibernate和SQLite。

请注意,Version字段为整型。当我为版本使用datetime类型时,一切都是正常的,因为它对于每个表都是唯一的。当使用int类型时,它是每行唯一的。

代码语言:javascript
运行
复制
this.Version(x => x.Version).Column("Version");
EN

回答 2

Stack Overflow用户

发布于 2011-09-13 14:12:51

如果您不使用version列作为“版本”,就像NHibernate定义它一样,那么您应该将它映射为一个属性,并为NHibernate版本控制使用不同的列。

您可以创建一个触发器,用insert上的序列值填充您的列,并按如下方式映射它:

代码语言:javascript
运行
复制
Map(x => x.Version).Column("Version")
   .Generated.Insert()
   .Not.Insert()
   .Not.Update();
票数 1
EN

Stack Overflow用户

发布于 2011-09-13 14:29:58

我认为如果你的Version变成了一个LastModified DateTime,你的Revision方法将会变得更加清晰,而且很明显,版本在整个表中不可能是唯一的。

如果您没有访问序列的权限,那么在db中获取DateTime.UtcDate或调用相同的函数可能比在db中处理自动增量唯一函数更容易。

如果这将满足您的需求,我认为它更容易编程比触发器版本,我也喜欢。也就是说,我不认为我们可以使用FluentNHibernate来映射这样的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7385701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档