【问题标题】:How to enable Is identity in entity framework?如何在实体框架中启用身份?
【发布时间】:2018-12-12 21:33:28
【问题描述】:

我正在尝试在我的代码中使用 Is Identity 来增加 TransactionId。但它显示以下错误:

SqlException:无法为标识列插入显式值 当 IDENTITY_INSERT 设置为 OFF 时,表 'TransactionHistories'。

我尝试使用[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 语法。但它没有用。

public partial class TransactionHistories
    {
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int TransactionId { get; set; }

        public DateTime? TransactionDate { get; set; }
        public long? CheckingAccountNumber { get; set; }
        public long? SavingAccountNumber { get; set; }
        [DisplayName("Transffered Amount")]
        public decimal? Amount { get; set; }
        public decimal? Transactionfee { get; set; }
        public long? TransactionTypeId { get; set; }
    }

            TransactionHistories = new TransactionHistories();
            TransactionTypes = new TransactionTypes();

            if (!ModelState.IsValid)
            {
                return Page();
            }

            SavingAccounts.Balance = SavingAccounts.Balance - Amount;
            CheckingAccounts.Balance = CheckingAccounts.Balance + Amount;

            //TransactionHistories.TransactionId = TransactionHistories.TransactionId + 1;
            TransactionHistories.TransactionDate = DateTime.Now;
            TransactionHistories.CheckingAccountNumber = CheckingAccounts.CheckingAccountNumber;
            TransactionHistories.SavingAccountNumber = SavingAccounts.SavingAccountNumber;
            TransactionHistories.Amount = Amount;
            TransactionHistories.Transactionfee = 0;
            TransactionHistories.TransactionType = "SavingToChecking";

上面是我的模型类,TransactionId 是主键,这是我尝试使用 Is Identity 使其增加 1 的值。我怎样才能使这项工作?请给我任何建议和帮助。

【问题讨论】:

  • 尝试在 DatabaseGenerateOption 之外添加 [key] 属性或将字段更改为 classname + Id (TransactionHistoriesId)
  • 我尝试添加 [key] 属性但仍然无法正常工作。顺便说一句,更改类名对这个问题很重要吗?
  • 您是否可以访问数据库,如果可以,是 SQL 吗?如果也是这种情况,您是否安装了 SSMS?您的金额显示名称也有错字
  • 创建数据模型时,我正在使用 SSMS 并将数据从 SSMS 服务器检索到 Visual Studio。

标签: c# sql-server visual-studio entity-framework


【解决方案1】:

【讨论】:

  • 您能否提及我应该去哪里更改该选项?
  • 您几乎只想在为数据库播种时这样做。告诉别人打开身份插入是不负责任的。
  • @Gideok Seong 在你的 sql ui 中,你应该把这个命令写到命令行
  • 这是 Gideok 想要在数据库中添加自动增量列,而你告诉它正在播种数据库,这是不负责任的。我们专注于问题,这个问题将解决这个解决方案 'SET IDENTİTY_INSERT "table" ON'
猜你喜欢
  • 2013-12-26
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多