How to specify an auto-incrementing (int) identity

2019-06-25 05:35发布

问题:

The title basically says it all... I'm trying to specify an auto-incrementing (int) identity column using Fluent-NHibernate and MySQL. I've tried the following variations...

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

...and tried setting default values on each.

Note: I'm using an int data type and have received errors such as...

"Input string was not in a correct format."

or...

"Field 'ID' does not have a default value'

回答1:

In MySQL you can create a column and mention its properties as AUTO_INCREMENT and DEFAULT VALUE 1 (or whatever you wish), why don't you use it?

--Cheers



回答2:

I'm using

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

and mapping as Increment and works for me.

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