Я использую 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, в их исходное состояние.
Я почти уверен, что совершаю простую ошибку, но не вижу ее. Есть идеи?