Вы также можете прочитать ответ Роба Конери в этом вопросе - он о SubSonic 3, но поскольку он говорит, что Роб думает, что таблица «многие ко многим» должна иметь первичный ключ из одного столбца для идентификации уникальная строка в любой таблице, я не думаю, что он реализовал поддержку составного ключа в SubSonic 2.
Лично я всегда добавляю столбец PK в таблицы многие-ко-многим, потому что это сильно упрощает код CRUD. Чувствую себя хорошо для меня - и если вы можете сделать это, я рекомендую пойти на это.
Мне не удалось найти официальную документацию, но я также помню (и столкнулся с проблемами ...), что всегда следует использовать столбец PK в качестве первого столбца в представлении, в противном случае подкачка страниц работает неправильно.
Проблема подкачки также может зависеть от версии базы данных. Например, реализация подкачки в SQL Server 2000 - это хак (табличные переменные и т. Д.) Из-за отсутствия соответствующих инструкций в SQL Server. Более поздние версии БД предлагают лучшие способы реализации подкачки и могут не зависеть от одного столбца PK.
И наконец, не совсем об этом вопросе, и опять же о личных предпочтениях: я стараюсь избегать SubSonic.Query
и использовать вместо него SubSonic.SQLQuery
. SqlQuery был добавлен позже и лучше, чем Query (см. Также этот вопрос )