在c#中与DBLinq一起使用时,SQLite错误没有这样的表

本文关键字:错误 SQLite DBLinq 中与 一起 | 更新日期: 2023-09-27 17:50:42

我已经使用SQLite管理员创建了一个数据库。它包含3个表,数据库位于文档文件夹中。我还使用DBMetal为Linq创建了映射类。

在应用程序中,下面是数据库连接和向SongMasterLocal插入新数据的代码。

        static SQLiteConnection con = new SQLiteConnection(@"data source=C:''Users''Kam''SongDb.s3db");
        SongDBML.SongDBMLDataContext dCon=null;
                      try
                      {
                         dCon = new SongDBML.SongDBMLDataContext(con);
                         SongDBML.SongMasterLocal tempSongMaster = new SongDBML.SongMasterLocal();
                          tempSongMaster.SongFilePath = this.FilePath;
                          tempSongMaster.Cleaned = true;
                         dCon.Connection.Open();
                         dCon.Connection.BeginTransaction();
                         dCon.GetTable<SongMasterLocal>().InsertOnSubmit(tempSongMaster);
                      //dCon.SongMasterLocal.InsertOnSubmit(tempSongMaster);
                      dCon.GetTable<NewTags>().InsertOnSubmit(tempNewTags);
                      dCon.SubmitChanges();
return true;

              }
              catch (Exception e)
              {
                  dCon.Connection.Close();
                  //throw e;
              }

当我执行代码,我得到SQLite错误:没有这样的表存在SongMasterLocal

如果我尝试使用SQLite execute命令创建一个新表,它会抛出' table already exist error.'

谁能帮我解决这个问题?

如果你需要更多的代码或调试跟踪,请问,我会张贴他们。

在c#中与DBLinq一起使用时,SQLite错误没有这样的表

修复问题。问题出在由DBMetal创建的映射类(DBML文件)中,它的表名与完整的名称空间相同,SQLite无法识别。现在这招很管用。——