1

我使用以下指南为 xamarin 项目部署了一个数据库文件。http://arteksoftware.com/deploying-a-database-file-with-a-xamarin-forms-app/

我这样创建了一个模型类:

[Table ("Person")]
public class Person  
{
    [PrimaryKey, AutoIncrement, Column("Id")]
    public int Id { get; set; }

    [NotNull, Column("Actor_Id")]
    public int ActorId { get; set; }
}

当我尝试在存储库中插入时

dbConn.Insert(newPerson);

我收到 SQLite.Net.SQLiteException:表 Person 没有名为 ActorId 的列。

如果数据库中的列名是 Actor_Id,则模型中的 [Column] 属性不应将其映射到表。

4

2 回答 2

0

我发现问题在于我在模型中使用了 SQLite 库。将其更改为使用 SQLite.Net.Attributes 允许正确的映射。

using SQLite.Net.Attributes;
于 2017-07-21T22:27:44.767 回答
0

您的手机/模拟器有可能之前部署了具有较旧数据库架构的应用程序。

在这种情况下,您需要:

  • 删除手机/模拟器中的现有应用程序。然后下一次运行应该没问题,因为它是使用新的数据库模式创建的。或者
  • 执行数据库升级脚本以更改当前旧数据库的架构。仅当您的应用已发布到商店时才执行此操作。
于 2017-07-19T05:42:24.343 回答