Asp.net mvc 在无状态(web)DB4O应用程序中管理唯一ID

Asp.net mvc 在无状态(web)DB4O应用程序中管理唯一ID,asp.net-mvc,db4o,identity-column,Asp.net Mvc,Db4o,Identity Column,我正在尝试使用DB4O构建一个新的web应用程序,这是一堆有趣的东西,还学到了一些非常有趣的东西。我正在努力解决的一件事是DB4O目前缺乏对无状态应用程序(主要是web应用程序)的支持,并且需要自动生成id 我已经找到了一些创造性的和有趣的方法,或者出于任何原因避免使用任何ID系统 虽然每种方法都有其优点,但我想知道不那么优雅的方法是否同样最适合。考虑下面的伪代码: If ID == 0 or null Set ID = (typeof(myObject)).Count myObject.Sav

我正在尝试使用DB4O构建一个新的web应用程序,这是一堆有趣的东西,还学到了一些非常有趣的东西。我正在努力解决的一件事是DB4O目前缺乏对无状态应用程序(主要是web应用程序)的支持,并且需要自动生成id

我已经找到了一些创造性的和有趣的方法,或者出于任何原因避免使用任何ID系统

虽然每种方法都有其优点,但我想知道不那么优雅的方法是否同样最适合。考虑下面的伪代码:

If ID == 0 or null
Set ID = (typeof(myObject)).Count
myObject.Save

这似乎是一个非常简单的方法,通常就在这里,我开始想,“我错过了一些非常明显的东西”。有吗?

您需要在计数之前锁定myObject的插入和删除,直到保存之后,新的包含AutoIncrementID支持加载项。项目刚刚开始,我还没有发布编译过的二进制文件。但它通过使用单个属性来添加对“标识”列或自动递增的ID字段/属性的支持

[AutoIncrement]
public property int ID {get; private set;}

[AutoIncrement]
protected int _id;
public property int ID {
  get{return _id;}
  set{this._id = value;}
}

啊。这显然是我遗漏的一点。谢谢