Это происходит потому, что, несмотря на то, что автоматически сгенерированное значение столбца было создано в базе данных, EF никогда не знал об этом.
Итак, чтобы сообщить EF, что БД будет обрабатывать сгенерированное значение, вам необходимо открыть файл edmx (я всегда использую XML-редактор VS для этого) и на языке определения схемы хранилища (SSDL), добавьте атрибут StoreGeneratedPattern = "Identity" в столбец, для которого требуется сгенерированный шаблон.Таким образом, EF читает значение, сгенерированное в БД, и сохраняет его в кеше памяти.
Ваше определение типа сущности будет выглядеть примерно так:
<EntityType Name="INVOICE">
<Key>
<PropertyRef Name="CODE" />
</Key>
<Property Name="CODE" Type="varchar" Nullable="false"
MaxLength="10" StoreGeneratedPattern="Identity"/>
</EntityType>
Имейте в виду, что если вам случится обновить вашу модель, все эти изменения будут потеряны, и вам придется повторитьвесь процесс.
Это работает для EF 1.0, я не уверен, что в EF4 все эти проблемы уже исправлены.