Lidando com o mapeamento de colunas de incremento automático SQLite no LINQtoSQL

Tenho a seguinte entidade

    [Table(Name = "Users")]
    public sealed class UserDB
    {
        private Int64 _id = -1;
        private string _username = string.Empty;

        public UserDB() { }

        public UserDB(RepositoryInfo repoInfo)
        {
            UserName = repoInfo.Account;
        }

        [Column(Name = "ID", Storage = "_id",  IsDbGenerated = true, IsPrimaryKey = true, UpdateCheck = UpdateCheck.Never)]
        public Int64 ID { get { return _id; } set { _id = value; } }

        [Column(Name = "UserName", DbType="nvarchar(50)", Storage = "_username")]
        public string UserName { get { return _username; } set { _username = value; } }
    }

EU IRI é mapeado paraAutoincrement INTEGER type column (na verdade, o único tipo possível com incremento automático no SQLite)

Quando tento adicionar um novo usuário ao DB assim, recebo um erro:

public static Int64 AddUser(DataContext context, RepositoryInfo repoInfo)
{            
    UserDB udb = new UserDB(repoInfo);

    //an ID of udb is -1, but I tried different values too, doesn't change result
    var userstable = context.GetTable<UserDB>();
    userstable.InsertOnSubmit( udb );


    context.SubmitChanges(); // here I get a error, see on screen shot

    return udb.ID;

}

EDITA Depois de pesquisar e verificar, parece que o SQLite simplesmente não fornece nenhumSCOPE_IDENTITY() função. Mas o Linq To SQL o injeta!

Como posso mudar isso

questionAnswers(2)

yourAnswerToTheQuestion