Я использую NHibernate с ClassMapping. Я создал индекс по одному из свойств, как это:NHibernate ClassMapping создает автоматический уникальный ключ
public class ShopMapping : ClassMapping<Shop>
{
public ShopMapping()
{
Table("Shops");
Id(p => p.Id, m => m.Generator(NHibernate.Mapping.ByCode.Generators.GuidComb));
Property(p => p.CountryCode, m =>
{
m.Length(10);
m.NotNullable(true);
m.Index("ShopCountryCodeIdx");
m.Unique(false);
});
}
}
Это создает индекс с именем ShopCountryCodeIdx, но я получил также уникальный индекс, называемый «CountryCode» на той же колонке. Я попробовал это без m.Unique (false), но никаких эффектов. Я просто перешел на новый компьютер. Старый компьютер: VS2012 на 32-м и новом ПК: VS2015 на 64-битной. Версия NHiberate работает одинаково (3.4.1.4). База данных - это MySQL 5.7 (на старой машине я использовал MySQL 5.5). Как это возможно?
Я просто повторно запускаю код (с объектом базы данных перетаскивания и т. д.) и воссоздаю таблицы с помощью m.Unique (false). Это приводит к дополнительному индексу «CountryCode» (не уникальному). забыл сказать, что свойство CountryCode существует еще в нескольких объектах. Все эти связанные с объектами таблицы получили дополнительный индекс «CountryCode». –
Редактирование: запускайте некоторые проблемы с кешированием Я думаю, индекс CountryCode по-прежнему «уникален» ... :( –