Прервать из-за нарушения ограничений столбцы GroupId, idx не являются уникальными - PullRequest
1 голос
/ 17 июня 2009

Я использую FluentNHibernate и выполнил сопоставление многие ко многим, но когда я пытаюсь сохранить свою сущность, я получаю следующую ошибку:

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();
    }
}

Проблема, кажется, как-то связана с идентификатором таблиц отношений, но я не могу понять, как ее решить.

Приветствия, nandarya

1 Ответ

1 голос
/ 17 июня 2009

Использование AsList () не было хорошей идеей. Должен быть AsBag (). И все, кажется, работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...