Ваша карта SKU неверна. Почему вы определили PRODUCT_NAME
как столбец идентификатора? Вам нужно исправить это, установив Id в столбец Id (который вы закомментировали):
Id(x => x.Id, "NAME_OF_YOUR_ID_COLUMN_HERE").GeneratedBy.Assigned();
Map(x => x.Ptoduct, "PRODUCT_NAME");
Если PRODUCT_NAME
действительно Id, вам нужно установить его следующим образом:
Id(x => x.Ptoduct, "PRODUCT_NAME").GeneratedBy.Assigned();
и удалите другую строку:
Map(x => x.Ptoduct, "PRODUCT_NAME");
Кроме того, если в вашей базе данных больше полей или таблиц, чем вы отображаете, это может привести к множеству ошибок. Чтобы разрешить их, вам нужно установить use_proxy_validator
в false
в вашей конфигурации.
EDIT:
NHibernate требует столбец Id для правильной работы. Я даже не знаю, что, если это действительно работает без фактического объявления столбца как столбца Id. Даже если вы объявите Ptoduct
в качестве столбца Id, вы не сможете правильно запросить базу данных, поскольку запрос любого из всех объектов с одинаковым Ptoduct
вернет самый верхний объект.