Я не думаю, что вы можете избежать этого. Детали NHibernate со «сущностями», а не со строками базы данных и сущностями, имеют идентичность.
Подумайте, что произойдет, если вы прочитаете некоторые из этих записей, измените их и попытаетесь их сохранить. NHibernate не будет знать, какую строку базы данных изменить. Конечно, вы не собираетесь делать это в вашем случае, но это именно то, для чего предназначен NHibernate.
Таким образом, вам нужно либо создать искусственный идентификатор, либо просто сохранить их без использования NHibernate (т. Е. С помощью прямого SQL, который вы можете запустить через объект NHibernate ISession, если хотите). Если пространство базы данных действительно имеет значение (т. Е. У вас их будет миллионы), я бы порекомендовал последний способ, в противном случае добавить искусственный идентификатор довольно просто.