Şirketimizin başvurusu için aynı kütüphaneyi kullanıyorum ve bildiğim kadarıyla, http://wp7sqlite.codeplex.com (under Some Recommendations) da belgelendi, eğer bağlantıyı kapatırsanız tekrar yeniden oluşturmanız gerekir. Ben Hatanın nedenini izini ettik
== EK AÇIKLAMALAR ==, bir düzeltme oluşturulan ve bizim uygulamasında test ediyorum. Kısaca, Community.CSharpSqlite kitaplığını WP7'ye bağlamak için, yazar WP7 IsolatedStorageFileStream öğesinin etrafında bir FileStream sarmalayıcı yazdı. Bir db açıldığında, db dosya akışı açılır ve CSharpSqlite tarafından okunup kapatılır. Ancak, bu akışa yönelik bir tutamaç, dosya akışına eşlenen bir sözlükte de saklanır. Bir db ikinci kez açıldığında, akımın tanıtıcısı alınır, ancak kapatıldığından (varsayımıyorum, henüz doğrulanmadı) db açılmaz.
Eğer
source code Community.CsharpSqlite.FileStream aşağıdaki değişiklikleri yapın isem değişiklikler wp7sqlite.codeplex.com projeye konuşlandırılmış alma girişiminde, ama bu arada edecek
değişiklik
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int unused)
{
IsolatedStorageFileStream handler = null;
if (FileStream.HandleTracker.TryGetValue(path, out handler))
{
_internal = handler;
}
else
{
if (mode == FileMode.Create || mode == FileMode.CreateNew)
{
_internal = IsolatedStorageIO.Default.CreateFile(path);
}
else
{
_internal = IsolatedStorageIO.Default.OpenFile(path, FileMode.OpenOrCreate);
}
FileStream.HandleTracker.Add(path, _internal);
}
}
dan
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int unused)
{
IsolatedStorageFileStream handler = null;
if(FileStream.HandleTracker.TryGetValue(path, out handler))
{
_internal = handler;
if(!_internal.CanRead)
{
FileStream.HandleTracker.Remove(path);
CreateOpenNewFile(path, mode);
}
} else {
CreateOpenNewFile(path, mode);
}
}
private void CreateOpenNewFile(string path, FileMode mode)
{
if(mode == FileMode.Create || mode == FileMode.CreateNew)
{
_internal = IsolatedStorageIO.Default.CreateFile(path);
} else {
try {
_internal = IsolatedStorageIO.Default.OpenFile(path, FileMode.OpenOrCreate);
} catch(Exception ex) {
var v = ex;
}
}
FileStream.HandleTracker.Add(path, _internal);
}
Bu ben hata ayıklama girişiminde ve bir açık kaynak projesine katkıda ediyorum ilk defa. Bu değişiklikler hakkında herhangi bir yorum veya düşünce büyük takdir edilecektir.
Alasdair.
, daha http://stackoverflow.com/editing-help bkz:
... Ben sadece genç bir programcı değilim. – BoltClock