1 pièce(s) jointe(s)
NHibernate many-to-many base de données
Salut
je ne parviens pas avec NHibernate à sauvegarder les données dans une table intermédiare.
Classe Topic
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public class Topic:IVersionedEntity
{
private readonly IList<Student> _students = new List<Student>();
public virtual long TopicId { get; set; }
public virtual DateTime Date { get; set; }
public virtual byte[] Version { get; set; }
public virtual string Note { get; set; }
public virtual Course Course { get; set; }
public virtual IList<Student> Students {
get
{
return _students;
}
}
} |
Classe Student
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public class Student: IVersionedEntity
{
public virtual long StudentId { get; set; }
public virtual string Name { get; set; }
public virtual string FirstName { get; set; }
public virtual string Email { get; set; }
public virtual string Tel { get; set; }
public virtual DateTime StartDate { get; set; }
public virtual string Abo { get; set; }
public virtual string Note { get; set; }
public virtual byte[] Version { get; set; }
} |
classMap Topic
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public TopicMap()
{
Table("dbo.Topics");
Version(x => x.Version)
.Column("ts")
.CustomSqlType("Rowversion")
.Generated.Always()
.UnsavedValue("null");
Id(x => x.TopicId);
Map(x => x.Date).Not.Nullable();
Map(x => x.Note).Not.Nullable();
References(x => x.Course, "CourseId");
HasManyToMany(x => x.Students).Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
.Table("TopicsSutdents")
.ParentKeyColumn("TopicId")
.ChildKeyColumn("StudentId");
} |
Base de données en piece jointe
Erreur:
NHibernate.Exceptions.GenericADOException
HResult=0x80131500
Nachricht = could not execute batch command.[SQL: SQL not available]
Quelle = NHibernate
Stapelüberwachung:
bei NHibernate.AdoNet.SqlClientBatchingBatcher.DoExecuteBatch(DbCommand ps)
bei NHibernate.AdoNet.AbstractBatcher.ExecuteBatchWithTiming(DbCommand ps)
bei NHibernate.AdoNet.AbstractBatcher.ExecuteBatch()
bei NHibernate.Engine.ActionQueue.ExecuteActions(IList list)
bei NHibernate.Engine.ActionQueue.ExecuteActions()
bei NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session)
bei NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event)
bei NHibernate.Impl.SessionImpl.Flush()
bei SW.Web.Common.ActionTransactionHelper.EndTransaction(HttpActionExecutedContext filterContext) in D:\SWWorkspace\SW\SW.Web.Common\ActionTransactionHelper.cs: Zeile42
bei SW.Web.Common.UnitOfWorkActionFilterAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) in D:\SWWorkspace\SW\SW.Web.Common\UnitOfWorkActionFilterAttribute.cs: Zeile27
bei System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken)
Innere Ausnahme 1:
SqlException: Ungültiger Objektname "TopicsSutdents".
Merci d'avance pour toute aide