Почему мои LINQ INSERTS не сохраняются в SQL Server CE 3.5? - PullRequest
3 голосов
/ 28 августа 2009

Я использую LINQ to SQL с Sql Server Compact Edition 3.5 и VS2008.

У меня есть очень простая таблица (Tokens) с первичным ключом uniqueidentifier (TokenID) и двумя другими обнуляемыми полями (UsedBy и UsedOn). Я пытаюсь использовать LINQ для вставки новых строк в таблицу, но по какой-то причине они не сохраняются.

Вот мой код:

        var connectionstring = "Data Source=|DataDirectory|\\MyData.sdf";
        MyData db = new MyData(connectionstring) { Log = Console.Out };

        Tokens token = new Tokens { TokenID = Guid.NewGuid() };
        db.Tokens.InsertOnSubmit(token);
        //db.GetChangeSet();
        db.SubmitChanges();

        var tokens = from t in db.Tokens
                     select t;
        foreach (var t in tokens)
        {
            Debug.Print(t.TokenID.ToString());
        }

Если я раскомментирую db.GetChangeSet (); Я вижу ожидающую вставку, и когда я повторяю и печатаю их в отладочную вдову, число токенов увеличивается с каждым разом. Но если я запрашиваю таблицу в VS (через Show Table Data), она пуста? Просмотр таких данных также «сбрасывает» токены, возвращенные LINQ, в их исходное состояние.

Я почти уверен, что совершаю простую ошибку, но не вижу ее. Есть идеи?

Ответы [ 2 ]

5 голосов
/ 28 августа 2009

Убедитесь, что файл вашей БД не копируется в выходной каталог при каждой сборке (на странице свойств элемента проекта)

3 голосов
/ 28 августа 2009

Конечно, через 5 минут после публикации моего вопроса у меня огромное DUH! момент. Оказывается, я обновлял базу данных в своем проекте, чтобы посмотреть, сохраняются ли вставки, когда я должен был проверить \ bin \ Debug \ MyData.sdf вместо этого.

Доверяй коду Шону, доверяй коду. О, и помни, что иногда ты идиот.

...