在AccountType.cs我:如何使用NHibernate的枚舉工作?
namespace MooDB.Domain
{
public enum AccountType {Real, Demo, Fictional};
}
在Account.cs我:
public class Account : Entity
{
public virtual int Id { get; set; }
public virtual Broker Broker { get; set; }
public virtual string Name { get; set; }
public virtual string NickName { get; set; }
public virtual string AccountNumber { get; set; }
public virtual Currency Currency { get; set; }
public virtual AccountType AccountType { get; set; }
public virtual bool IsActive { get; set; }
public virtual bool IsDefault { get; set; }
}
在我Account.hbm.xml我有
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MooDB"
namespace="MooDB.Domain">
<class name="MooDB.Domain.Account,MooDB" table="accounts">
<id name="Id" column="accountId" type="Int32" unsaved-value="0">
<generator class="native" />
</id>
<version name="Version" column="version" type="integer" unsaved-value="0" />
<many-to-one name ="Broker" column="brokerId" not-null="true" class="MooDB.Domain.Broker,MooDB" />
<property name="Name" column="`name`" type="String" length="50" not-null="true" />
<property name="NickName" column="nickName" type="String" length="50" not-null="true" />
<property name="AccountNumber" column="accountNumber" type="String" length="50" not-null="true" />
<many-to-one name ="Currency" column="currency" not-null="true" class="MooDB.Domain.Currency,MooDB" />
<property name="AccountType" column="accountType" />
<property name="IsActive" column="isActive" type="bool" not-null="true" />
<property name="IsDefault" column="isDefault" type="bool" not-null="true" />
</class>
</hibernate-mapping>
我的數據庫表的外觀如:
CREATE TABLE [dbo].[accounts](
[accountId] [int] IDENTITY(1,1) NOT NULL,
[brokerId] [int] NOT NULL,
[name] [nvarchar](50) NOT NULL,
[nickName] [nvarchar](50) NOT NULL,
[accountNumber] [nvarchar](50) NOT NULL,
[currency] [char](3) NOT NULL,
[accountType] [varchar](10) NOT NULL,
[isActive] [bit] NOT NULL,
[isDefault] [bit] NOT NULL,
[version] [int] NOT NULL,
CONSTRAINT [PK_accounts] PRIMARY KEY CLUSTERED
(
[accountId] ASC
)
當我嘗試和測試的帳戶檢索,我得到這個錯誤從NHibernate的:
Test 'Test.RepoTest.CanGetAccountById' failed: NHibernate.Exceptions.GenericADOException : could not load an entity: [MooDB.Domain.Account#1][SQL: SELECT account0_.accountId as accountId3_0_, account0_.version as version3_0_, account0_.brokerId as brokerId3_0_, account0_.[name] as name4_3_0_, account0_.nickName as nickName3_0_, account0_.accountNumber as accountN6_3_0_, account0_.currency as currency3_0_, account0_.accountType as accountT8_3_0_, account0_.isActive as isActive3_0_, account0_.isDefault as isDefault3_0_ FROM accounts account0_ WHERE account0_.accountId=?]
----> System.FormatException : Input string was not in a correct format.
所有我想要做的就是在我的用於驗證應用程序帳戶類型的列表。我不想在我的數據庫中有查找表。任何想法我做錯了什麼?