Tyvärr angav du inte vilken databas du använder (SQL är bara frågespråket...), men om du använder SQL Server (Microsoft RDBMS-produkten) kan du skapa en beräknad kolumn av typen VARCHAR(15) för att hålla en strängrepresentation av din
INT
, och sedan är det bara att söka på det...
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%'
Huruvida det verkligen är affärsmässigt vettigt är en helt annan historia..... (Jag håller med Oded och Matt Ball...)
Men eftersom det nu är en strängkolumn bör du kunna använda dina Restrictions.Like
tillvägagångssätt i NHibernate som du nämner.