我有一个像这样的视图模型类设置:
using System.ComponentModel.DataAnnotations;
namespace Proj1.Models
{
public class Groups
{
[Key]
public int Id { get; set; }
public string? GrpName { get; set; }
}
}
我以为
{Key]
有一个内置的自动递增功能。所以我创建了一个包含三个表的数据库,如下所示:
var dbfile = GenDbName(); // This generates a database file name.
var dbpath = Path.Combine(datLoc, dbfile);
var Options = new SQLiteConnectionString(dbpath, true);
var conn = new SQLiteAsyncConnection(Options);
await conn.CreateTablesAsync<LakSettings, Groups, PassWrds>();
对于组表,我添加了如下记录:
var grp = new Groups()
{
GrpName = "Computer"
};
await conn.InsertAsync(grp);
grp = new Groups()
{
GrpName = "Email"
};
await conn.InsertAsync(grp);
grp = new Groups()
{
GrpName = "Internet"
};
await conn.InsertAsync(grp);
当我查看 Group 表的 Id 字段时,每条记录都有相同的值 0.00。
那么出了什么问题?
在类定义中尝试这个主键语法:
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
这应该将列创建为唯一且自动增量的。