2010-10-23 78 views
4

标题基本上说这一切......我试图用Fluent-NHibernate指定一个自动递增(int)标识列, MySQL的。我尝试了以下变化...如何使用Fluent-NHibernate和MySQL指定自动递增(int)标识列

Id(x => x.ID).GeneratedBy.Native();
Id(x => x.ID).GeneratedBy.Identity();
Id(x => x.ID).GeneratedBy.Increment();

...并尝试设置每个默认值。

注:我使用的是int数据类型,并已收到诸如...

“输入字符串的不正确的格式”

或...

“域‘ID’没有默认值”

回答

-3

在MySQL中,你可以创建一个列,并提及其为AUTO_INCREMENT和默认值的属性1(或任何你愿意的话),你为什么不使用它呢?

--Cheers

+0

当Fluent-NHibernate生成模式时,它会自动生成带有自动增量的int(11)数据类型的列。没有默认值,但设置一个没有什么区别。 – Adam 2010-10-23 12:58:22

+0

Argh ... Web.config使用旧数据库所在的旧连接字符串。纠正后......“Id(x => x.ID).GeneratedBy.Identity();”没有问题的工作。 – Adam 2010-10-23 14:10:23

7

我使用

public class User 
    { 
     public virtual int Id { get; set; } 
     public virtual IList<Names> Names { get; set; } 
     public virtual IList<Addresses> Addresses { get; set; } 
    } 

和映射为增量和为我工作。

Id(x => x.Id).GeneratedBy.Increment();