Я сейчас использую LINQ-to-SQL, и я написал простое приложение, которое определяет данные SQL:
[Table( Name = "items" )]
public class Item
{
[ Column( IsPrimaryKey = true, IsDbGenerated = true ) ]
public int Id;
[ Column ]
public string Name;
}
Я запустил 2 копии приложения, подключенного к одному и тому же файлу .sdf, и проверил, влияют ли все модификации базы данных в одном приложении на другое приложение. Но странная вещь возникает. Если я использую InsertOnSubmit () и DeleteOnSubmit () в одном приложении, добавленные / удаленные элементы мгновенно отображаются в другом приложении через очередь «select» LINQ. Но если я попытаюсь изменить поле «Имя» в одном приложении, оно не будет видно в другом приложении, пока оно не соединит базу данных :(. Тестовый код, который я использую:
var Items = from c in db.Items
where Id == c.Id
select c;
foreach( var Item in Items )
{
Item.Name = "new name";
break;
}
db.SubmitChanges();
Может кто-нибудь подсказать, что я делаю неправильно и почему InsertOnSubmit () / DeleteOnSubmit работает, а SubmitChanges () - нет?