如何在各种 .NET ORM 中使列成为自动递增的主键?
Posted
技术标签:
【中文标题】如何在各种 .NET ORM 中使列成为自动递增的主键?【英文标题】:How do you make a column an auto incremented primary key in the various .NET ORMs? 【发布时间】:2010-01-23 21:28:24 【问题描述】:如何在各种 .NET ORM 中使列(我们称之为 OrderID
)成为自动递增的主键?
Linq To SQL
[Column(Name="OrderID", IsPrimaryKey=true, IsDbGenerated=true)]
实体框架
[EdmScalarProperty(EntityKeyProperty=true, IsNullable=false)]
(不能指定 autoinc?)
NHibernate
[Id(Name = "OrderId"), Generator(1, Class ="Identity")]
我提出这个问题是为了得到这个问题的一站式答案,并从 .NET 社区征求更多信息。如果您使用此处未列出的 ORM,请编辑此问题并发布适当的属性。
【问题讨论】:
【参考方案1】:在 Habanero (http://www.habanerolabs.com/) 中,您可以通过 ClassDef.Xml 进行如下设置:
属性名称="AutoIncrementingProp" type="Int32" autoIncrementing="true"
或者您可以通过勾选 Autogenerate 在 Firestarter 中进行设置(这将生成具有 autoIncrementing 的 ClassDef。
或者,如果您使用更流畅的语法,即您没有通过 ClassDefs 设置业务对象,那么您会这样做。
BOProp autoIncrementingProp = new BOProp(.......,true,.);
或 autoIncrementingProp.AutoIncrementing = true;
【讨论】:
以上是关于如何在各种 .NET ORM 中使列成为自动递增的主键?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ruby on Rails 迁移中使列唯一并为其编制索引?
在 dataTables.js jQuery 插件中使列不可排序
如何在 PHPMyAdmin 中使 MySql 中的字段自动递增?