密钥不自动递增

问题描述 投票:0回答:1

我有一个像这样的视图模型类设置:

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。

那么出了什么问题?

c# sqlite maui primary-key auto-increment
1个回答
0
投票

在类定义中尝试这个主键语法:

[PrimaryKey, AutoIncrement]
public int Id { get; set; }

这应该将列创建为唯一且自动增量的。

© www.soinside.com 2019 - 2024. All rights reserved.