Hi NHUsers,
I run into a exception when using Log4Net with NHibernate.
Note that i have found two ways to work around this:
1. Dont call 'XmlConfigurator.Configure();' from global.asax.
2. Remove the line '.Not.KeyNullable()' from Order class mapping.
With option 1 we lose logging. With option 2 we lose nullable.
Has anyone else encountered this problem?
Exception type: InvalidCastException.
Exception message: Unable to cast object of type
'NHibernate.Properties.UnknownBackrefProperty' to type 'System.String'.
Exception stack trace:
at NHibernate.Type.AbstractStringType.ToString(Object val)
at NHibernate.Type.NullableType.ToLoggableString(Object value,
ISessionFactoryImplementor factory)
at NHibernate.Impl.Printer.ToString(Object entity, EntityMode entityMode)
at NHibernate.Impl.Printer.ToString(IEnumerator enumerator, EntityMode
entityMode)
at
NHibernate.Event.Default.AbstractFlushingEventListener.FlushEverythingToExecutions(FlushEvent
event)
at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent
event)
at NHibernate.Impl.SessionImpl.Flush()
at NHibernate.Transaction.AdoTransaction.Commit()
at ... this is my calling code ...
Mapping:
public class OrderMap : ClassMap<Order>
{
public OrderMap()
{
Table("ORDERS");
Id(Reveal.Member<Order>("_id")).Column("ID").Length(32).Not.Nullable
();
HasMany<OrderLine>(
Reveal.Member<Order>("_orderLines"))
.KeyColumn("FK_ORDER")
.Not.KeyNullable()
.Cascade.AllDeleteOrphan();
}
}
public class OrderLineMap : ClassMap<OrderLine>
{
public OrderLineMap()
{
// 'OrderLine' objecten worden in de 'ORDER_LINES' tabel opgeslagen
Table("ORDER_LINES");
// ID mappen
Id(Reveal.Member<OrderLine>("_id"))
.Column("ID")
.GeneratedBy.Sequence("GEN_ORDER_LINES")
.Not.Nullable();
References<Product>(Reveal.Member<OrderLine>("_product"))
.Column("FK_PRODUCT_EANCODE")
.Not.Nullable();
Map(Reveal.Member<OrderLine>("_quantity")).Column("QUANTITY").Not.
Nullable();
}
}
In global.asax Application_Start:
XmlConfigurator.Configure();
Log 4 net config:
<log4net debug="false">
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="[%level] %message%newline" />
</layout>
</appender>
<logger name="NHibernate.SQL">
<level value="DEBUG" />
<appender-ref ref="trace" />
</logger>
</log4net>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.