首页 > 解决方案 > 使用 Microsoft.EntityFramework.Sqlite.Core 插入标识

问题描述

我将如何修改我的 Add 方法,以便在每次执行插入时插入一个新标识。是否有一种干净的 LINQ 语法方法可以在不使用硬编码 SQL 的情况下执行此操作?

这是通过实体框架将数据保存到 SQLite 表的方法

   public static void Add(CreditCardTableData creditCard)
        {
            using var context = new SqliteContext();
            var entity = context.CreditCards.Add(creditCard);
            entity.State = EntityState.Added;
            context.SaveChanges();
        }

这是表示表数据的类:

using System;
using System.Collections.Generic;
using System.Text;

namespace DebtRefresh.Domain.Data.DatabaseTables
{
    public class CreditCardTableData
    {
        public int CreditCardTableId { get; set; }
        public int CreditCardType { get; set; }
        public string AccountNickName { get; set; }
        public float CreditLine { get; set; }
        public float OwingBalance { get; set; }
    }
}

标签: databasesqliteentity-framework-coresql-insertauto-increment

解决方案


在主键属性上使用DatabaseGenerated 属性

身份:ValueGeneratedOnAdd

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CreditCardTableId { get; set; }

推荐阅读