nhibernate c# Не создается связь один ко многим nhibernate

199
21 декабря 2021, 15:20

Есть таблицы :

public class RefPermission : BaseReference {
        public virtual PermissionEnum Permission { get; set; }        
        public virtual RefGroupPermission GroupPermission { get; set; }        
    }

и

public class RefGroupPermission : BaseReference {
        public virtual ISet<RefPermission> Permissions { get; set; }
        public virtual PermissionType PermissionType { get; set; }                
        public RefGroupPermission()
        {
            this.Permissions = new HashSet<RefPermission>();
        }
    }

и я их оверайжу:

public class RefPermissionOverride : IAutoMappingOverride<RefPermission> {
        public void Override(AutoMapping<RefPermission> mapping) {            
            mapping.References(x => x.GroupPermission,"grouppermissionid").ForeignKey("grouppermissionid");
        }
    }

и

public class RefGroupPermissionOverride : IAutoMappingOverride<RefGroupPermission> {        
        public void Override(AutoMapping<RefGroupPermission> mapping) {
            mapping.HasMany(x => x.Permissions);
        }
    }

но nhibernate создает новый столбец и думает что это внешний ключ:

Как мне сделать внешний ключ по свойству GroupPermission в классе RefPermission?

Answer 1

я решил проблдему нужно добавить в главную таблицу KeyColumns.Add("grouppermissionid"), вот так:

public void Override(AutoMapping<RefGroupPermission> mapping) {
            mapping.HasMany(x => x.Permissions).KeyColumns.Add("grouppermissionid");           
        }
READ ALSO
Как сделать TextBox растягивающимся?

Как сделать TextBox растягивающимся?

используюNet Framework (compact Edition) для мобильного приложения

166
Перевод формата даты Excel в python datetime формат

Перевод формата даты Excel в python datetime формат

Работаю над задачей перевода формата даты ячейки Excel-я в python datetime форматНашел на английском stackoverflow подходящую реализацию перевода C# формата...

141
Решить пример 38^29 mod 91 на C#

Решить пример 38^29 mod 91 на C#

Пробовал сам сделать, но C# не может, такие большие числа обрабатывать правильноНа Python все ок работает

130
Можно ли применить к include() фильтры take() и skip()

Можно ли применить к include() фильтры take() и skip()

В принципе в названии вопрос ясен, есть список, у элемента списка есть еще список, из бд мне нужно получить ограниченное количество элементов...

86