部署Universal App后,部署的SQLite数据库为空

部署Universal App后,部署的SQLite数据库为空,sqlite,win-universal-app,Sqlite,Win Universal App,我在UWP的SQLite数据库中使用。它有几个表,位于Assets文件夹中,并将构建操作标记为“Content” 正在开发的机器工作正常。 但在部署到MS Windows 10平板电脑后,它出现了错误 SQLite错误1没有这样的表公司 它对应于代码 using (MobileContext db = new MobileContext()) { companiesList.ItemsSource = db.Companies.ToList(); ... } var created

我在UWP的SQLite数据库中使用。它有几个表,位于Assets文件夹中,并将构建操作标记为“Content”

正在开发的机器工作正常。 但在部署到MS Windows 10平板电脑后,它出现了错误

SQLite错误1没有这样的表公司

它对应于代码

using (MobileContext db = new MobileContext())
{
   companiesList.ItemsSource = db.Companies.ToList();
   ...
}
var createdResult=Database.EnsureCreated();//这是假的

我假设基于该数据库存在

我试过了

optionsBuilder.UseSqlite("Data Source=" + ApplicationData.Current.LocalFolder.Path + @"\Mobile.db");

optionsBuilder.UseSqlite("Data Source=Mobile.db");
有线索吗?谢谢

另外,我使用Microsoft.EntityFrameworkCore访问SQLite

p.S.#2我已经尝试过这个解决方案,但它不起作用。

源自

UWP应用程序中的连接字符串通常是仅指定本地文件名的SQLite连接。它们通常不包含敏感信息,并且不需要在部署应用程序时进行更改。因此,这些连接字符串通常可以留在代码中,如下所示。如果您希望将它们移出代码,那么UWP支持设置的概念

公共类BloggingContext:DbContext
{
公共数据库集博客{get;set;}
公共DbSet Posts{get;set;}
配置时受保护的覆盖无效(DBContextOptions Builder Options Builder)
{
optionsBuilder.UseSqlite(“数据源=blogging.db”);
}
}
数据库文件的默认路径是application。看起来是这样的
C:\Users\vxx\AppData\Local\Packages\e045f456-27d9-4966-b639-01e2281b249f_7jxxxxxxxxx\LocalState
。如果您的配置与上面相同,则在新机器中部署时,db文件的内容为空

操作更新

我刚刚评论了一些类的装饰,比如
[Table(“companys”)]
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
,它现在可以工作了

让我们。
public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
            optionsBuilder.UseSqlite("Data Source=blogging.db");
    }
}