Я добавил jQuery, чтобы добавить класс к выбранной опции. Попробуйте это:
function selectOption() {
var x = $('#select-dropdown').val()
$('#select-dropdown option[value='+ x+']').attr("selected", true).attr("disabled", true)
}
select option:disabled:checked {
color: grey;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="select-dropdown" onChange="selectOption()">
<option selected disabled>Initial Option</option>
<option value="One">One</option>
<option value="Two">Two</option>
</select>
Существует свойство 'составной-идентификатор', которое вы можете использовать в своем классе отображение вместо свойства id. Однако вы должны знать, что команда nHibernate категорически не рекомендует его использовать. Похоже, вы имеете дело с устаревшей базой данных, в которой у вас нет контроля над схемой. Итак, 'составной-идентификатор' предназначен специально для вашей ситуации.
Дополнительную информацию можно найти в документации NH: http://nhibernate.info/doc/nh/en/index.html
Лично мне не нравится иметь составной первичный ключи в схемах таблиц моей базы данных, плюс они обычно «трудно» обрабатывать любым ORM-картографом, который я пробовал. Если мне нужно присвоить уникальный идентификатор строке в таблице (особенно, если она представляет бизнес-объект), я предпочитаю использовать суррогатный идентификатор с одним значением - GUID или целое число - если какое-либо из полей в таблице не указано. т подходит. Использование составного идентификатора всегда затруднительно при написании запросов и объединений, поэтому моя обычная стратегия состоит в использовании суррогатного идентификатора (который не имеет значения для бизнес-объекта, кроме идентификации самого объекта) и наложения уникального ограничения на поля предыдущий CPK.
Вот пример использования свойства составного идентификатора в файле сопоставления NHibernate:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Domain" namespace="Domain.Model">
<class name="Program" table="program">
<composite-id>
<key-property name="Id" column="id"></key-property>
<key-property name="Prog" column="prog"></key-property>
<key-property name="Site" column="site"></key-property>
</composite-id>
<property name="ActiveDate" column="active_date"/>
<property name="Year" column="year"/>
</class>
</hibernate-mapping>