Я немного борюсь с отображением NHibernate в консольном приложении.
Вот резюме:
Это отношения один ко многим. PARENT_TABLE (один) - CHILD_TABLE (много)
PARENT_TABLE имеет составной ключ, состоящий из двух ключей: Vendor и Invoice
Id(x => x.Invoice).Column("INVOICE");
References(x => x.Distribution).Column("INVOICE");
- CHILD_TABLE имеет составной ключ, состоящий из трех: Vendor, Invoice и Num
Id(x => x.Invoice).Column("INVOICE");
HasOne(x => x.Invoice).ForeignKey("INVOICE").Cascade.Refresh();
Когда я запускаю некоторые данные, которые имеют следующий пример:
Счет-фактура поставщика №
10 | 44 | 1
11 | 44 | 1
11 | 44 | 2
Я получаю сообщение об ошибке из-за дублирования идентификатора в счете-фактуре (имеет смысл)
Затем я попытался использовать составной идентификатор, используя 3 ключа для распределения и 2 ключа для счета-фактуры. Это, как я уверен, многие из вас уже знают, также привело к ошибке, поскольку есть две записи, которые используют 11 и 44 для Vendor и Invoice, соответственно.
Мой вопрос: есть ли способ объявить отношения с помощью составного идентификатора (INVOICE и VENDOR) и по-прежнему обеспечивать, чтобы дочерняя коллекция соблюдала / обеспечивала уникальность трехкомпонентной комбинации (INVOICE, VENDOR и NUM)?
Я пробовал несколько вариантов составные ключи и не смогли понять это. Может быть, это просто не для этого. Любая помощь будет высоко ценится!