1
我使用FluentNHibernate,并已做了许多一对多的映射,但是当我尝试保存我的实体,我得到以下错误:中止由于违反约束列的GroupId,IDX不是唯一
NHibernate.Exceptions.GenericADOException: NHibernate.Exceptions.GenericADOException
: could not insert collection: [Test.Entities.Recipient.Groups#b6815d34-f436-4142-9b8e-1bfcbf25509e][SQL: SQL not available]
---- System.Data.SQLite.SQLiteException : Abort due to constraint violation
columns GroupId, idx are not unique
这里是我的映射:
public class GroupMap : ClassMap<Group>
{
public GroupMap()
{
Id(x => x.Id).GeneratedBy.Guid();
Map(x => x.Name);
Map(x => x.SenderName);
Map(x => x.Created);
HasManyToMany(x => x.Recipients)
.AsList()
.WithTableName("groups_recipients")
.WithParentKeyColumn("GroupId")
.WithChildKeyColumn("RecipientId")
.LazyLoad()
.Cascade.AllDeleteOrphan();
}
}
public class RecipientMap : ClassMap<Recipient>
{
public RecipientMap()
{
Id(x => x.Id).GeneratedBy.Guid();
Map(x => x.Firstname);
Map(x => x.Lastname);
Map(x => x.Phone);
Map(x => x.Email);
HasManyToMany(x => x.Groups)
.AsList()
.WithTableName("groups_recipients")
.WithParentKeyColumn("RecipientId")
.WithChildKeyColumn("GroupId")
.LazyLoad().Cascade.None();
}
}
这个问题似乎有事情做与关系表ID,但我无法弄清楚如何解决它。
干杯, nandarya
首先,您可以将show_sql设置为true :)调试时帮助很多..提示打印到debut.out窗口中:http://social.msdn.microsoft.com/Forums/en-US/ linqtosql/thread/6ebcfadf-042d-4295-8902-5b3e039ab1b5 – cwap 2009-06-17 12:00:18
其实我有“SQLiteConfiguration.Standard.InMemory().ShowSql()”设置,所以我应该得到的SQL。但在我得到的错误消息: [SQL:SQL不可用] – nandarya 2009-06-17 12:26:21