Niestety, nie określiłeś jakiej bazy danych używasz (SQL jest tylko językiem zapytań...), ale jeśli korzystasz z SQL Server (produkt Microsoft RDBMS), możesz utworzyć kolumnę obliczeniową typu VARCHAR(15) do przechowywania ciągu reprezentującego twój
INT
, a następnie po prostu wyszukaj to....
ALTER TABLE dbo.YourTable
ADD IdAsString AS CAST(Id AS VARCHAR(15)) PERSISTED -- PERSISTED might not work - depending on your version of SQL Server
SELECT (list of columns)
FROM dbo.YourTable
WHERE IdAsString LIKE '123%'
Czy to naprawdę ma sens biznesowy, to zupełnie inna historia… (Zgadzam się z Odedem i Mattem Ballem…)
Ale ponieważ jest to teraz kolumna ciągu, powinieneś być w stanie użyć swojego Restrictions.Like
podejście w NHibernate, jak wspomniałeś.