首页 > 解决方案 > 系统异常:'无法创建没有列的表,它是否具有公共属性?

问题描述

我正在创建一个 Xamarin 表单,我必须在其中创建一个表来保存详细信息(用户和密码)。

当我在模拟器上运行它时,我最终得到了这个错误:

系统异常:无法创建没有列的表

在视图中:

private async void _saveButton_Clicked(object Sender, EventArgs e)
{
    var db = new SQLiteConnection(_dbPath);

    db.CreateTable<User>();

    var maxPk = db.Table<User>().OrderByDescending(c => c.Id).FirstOrDefault();

    User user = new User()
        {
            Id = (maxPk == null ? 1 : Convert.ToInt32(maxPk.Id) +1),
            Email = _emailEntry.Text,
            Password = _passwordEntry.Text
        };

    db.Insert(user);
    await DisplayAlert(null, "Saved", "Ok");
    await Navigation.PopAsync();
}

在模型中:

using SQLite;

namespace LoginPage.Models
{
    public class LoginPage
    {
        [PrimaryKey]
        public int Id { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }

        public override string ToString()
        {
            return this.Email + "," + this.Password;
        }
    }
}

标签: c#.netxamarin

解决方案


在 Models 中,将您的类的名称更改为 User。那就是您要创建的表模型。

使用 SQLite;

namespace LoginPage.Models
{
    public class User
    {
        [PrimaryKey]
        public int Id { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }

        public override string ToString()
        {
            return this.Email + "," + this.Password;
        }
    }
}

推荐阅读