Обязательно нужно смотреть свойство IsDbGenerated, а не автосинхронизация.
Я вижу, вы описали один сценарий, в котором вы хотите установить идентификатор в приложении. Есть ли на самом деле другой сценарий, когда вам нужно, чтобы он был автоматически сгенерирован базой данных? Если нет, вы можете просто установить IsDbGenerated = false и заполнить с помощью Guid.NewGuid () в службе WCF, если / когда у вас еще нет идентификатора от клиента.
Одним из преимуществ использования rowguid вместо столбца идентификаторов является то, что вам разрешено вставлять определенные значения в столбец rowguid, но это не обязательно. Вы можете сохранить столбец как rowguid с помощью DEFAULT NEWID (), но установите IsDbGenerated = false в вашем сервисе, и он все равно будет работать, пока вы не забудете заполнить ID.