Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq从sqlite删除Windows 8/RT_C#_Linq_Sqlite_Windows Runtime - Fatal编程技术网

C# 使用linq从sqlite删除Windows 8/RT

C# 使用linq从sqlite删除Windows 8/RT,c#,linq,sqlite,windows-runtime,C#,Linq,Sqlite,Windows Runtime,我在Windows应用商店应用程序的独立存储中有SQLite数据库。 我在Windows运行时使用SQLite 当我想删除所有表项时,我使用以下方法: public static async void DeleteAllProjects() { var storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("myDb.sqlite"); using (var db =

我在Windows应用商店应用程序的独立存储中有SQLite数据库。 我在Windows运行时使用SQLite 当我想删除所有表项时,我使用以下方法:

  public static async void DeleteAllProjects()
    {
        var storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("myDb.sqlite");
        using (var db = new SQLiteConnection(storageFile.Path))
        {
            try
            {
                db.DeleteAll<Projects>();
            }
            catch
            (Exception ex)
            {
                Debug.WriteLine("Delete error   " + ex.Message);
            }
        }
    }

有人能帮我吗?

将ID定义为项目的主键。如何做到这一点取决于您使用的ORM。@DanielHilgarth,谢谢您的评论。这个问题很愚蠢,但评论很明显,但很有帮助。
 public static async void Delete(List<Projects> projects)
    {
        var storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("myDb.sqlite");
        using (var db = new SQLiteConnection(storageFile.Path))
        {
            try
            {
                foreach (var project in projects)
                {
                    var existingProject = (db.Table<Projects>().Where(
                        p => p.id == project.Id)).FirstOrDefault();
                    if (existingProject != null)
                    {
                          db.Delete<Projects>(existingProject);
                    }
                }
            }
            catch
            (Exception ex)
            {
                Debug.WriteLine("Delete error   " + ex.Message);
            }
        }
    }
ex.Message = "Cannot delete Projects: it has no PK" string