如何在各种 .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 中的字段自动递增?

如何在Excel下拉中使字母自动递增 急急急急急!!!!!!!!!

在引导程序中使列固定位置

在 Laravel 5 迁移中使列不可为空