0
私のテーブルには、いくつかのint(11)およびint(11)null可能な列があります。私のドメインオブジェクトはintとintが同じですか?プロパティ。ValidateSchemaは、OverflowExceptionを返します。
私はValidateSchemaを実行すると、私は非常に良いエラーメッセージを表示せずに例外を取得:メソッドはリフレクターを使用して奇妙な何かを行いますよう
at System.Convert.ToInt32(UInt64 value)
at System.UInt64.System.IConvertible.ToInt32(IFormatProvider provider)
at System.Convert.ToInt32(Object value)
at NHibernate.Dialect.Schema.MySQLColumnMetadata..ctor(DataRow rs)
at NHibernate.Dialect.Schema.MySQLTableMetadata.GetColumnMetadata(DataRow rs)
at NHibernate.Dialect.Schema.AbstractTableMetadata.AddColumn(DataRow rs)
at NHibernate.Dialect.Schema.AbstractTableMetadata.InitColumns(IDataBaseSchema meta)
at NHibernate.Dialect.Schema.AbstractTableMetadata..ctor(DataRow rs, IDataBaseSchema meta, Boolean extras)
at NHibernate.Dialect.Schema.MySQLTableMetadata..ctor(DataRow rs, IDataBaseSchema meta, Boolean extras)
at NHibernate.Dialect.Schema.MySQLDataBaseSchema.GetTableMetadata(DataRow rs, Boolean extras)
at NHibernate.Tool.hbm2ddl.DatabaseMetadata.GetTableMetadata(String name, String schema, String catalog, Boolean isQuoted)
at NHibernate.Cfg.Configuration.ValidateSchema(Dialect dialect, DatabaseMetadata databaseMetadata)
at NHibernate.Tool.hbm2ddl.SchemaValidator.Validate()
は見えません:
public MySQLColumnMetadata(DataRow rs) : base(rs)
{
base.Name = Convert.ToString(rs["COLUMN_NAME"]);
object obj2 = rs["CHARACTER_MAXIMUM_LENGTH"];
if (obj2 != DBNull.Value)
{
base.ColumnSize = Convert.ToInt32(obj2);
}
obj2 = rs["NUMERIC_PRECISION"];
if (obj2 != DBNull.Value)
{
base.NumericalPrecision = Convert.ToInt32(obj2);
}
base.Nullable = Convert.ToString(rs["IS_NULLABLE"]);
base.TypeName = Convert.ToString(rs["DATA_TYPE"]);
}
私も持っていますいくつかのDateTimeとDateTime?私のモデルで。私はmysqlのnhibernateが少し奇妙なDateTimeのです知っている。これが問題だろうか?