У меня есть база данных SQL Server 2008 с составным ключом: ProjectID (GUID) и TaskID (int). ProjectID - это внешний ключ к таблице Projects. Я хочу, чтобы TaskID автоматически увеличивался, но перезапускался для каждого ProjectID (то есть: каждый projectID должен иметь 1,2,3, ... в качестве TaskID).
Насколько мне известно, это невозможно в SQL Server "из коробки", и мне нужна хранимая процедура. Теперь, прежде чем я углублюсь в это, я задаюсь вопросом, могу ли я вместо этого сделать это на моей стороне ORM? Я не определился между NHibernate 2.1.2 и Subsonic 3.0, но даже Linq-To-SQL - вариант (Entity Framework - нет), если это возможно с ним.
Я знаю, что могу просто написать этот код вручную, и я знаю, что почти наверняка "SELECT max (TaskID) FROM Tasks", ГДЕ ProjectID = @projectID "необходим в любом случае, но если я могу избежать этого и вместо этого иметь ORM сделай это, это было бы неплохо.
Я не нашел ничего в их соответствующих документах, но я действительно не знаю, есть ли подходящий термин для этого сценария?