2010-10-23 140 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();