Мне не совсем понятно, в чем разница между использованием AsNoTracking () для объекта, имеющего ключ, и использованием HasNoKey ().Как я понимаю, при использовании AsNoTracking (), даже несмотря на то, что средство отслеживания изменений не отслеживает изменения в результирующих объектах, объекты все еще хранятся в памяти DbContext.Если вы попытаетесь присоединить новый объект с тем же ключом, который уже есть в памяти, вы получите ошибку.(поправьте меня, если я ошибаюсь).
То же самое поведение, если вы используете HasNoKey (бывший DbQuery <>)?