gpt4 book ai didi

c# - 实体类型需要定义主键,键属性错误

转载 作者:行者123 更新时间:2023-11-30 23:03:29 25 4
gpt4 key购买 nike

设置概念验证应用程序。我在 VS2017 中的 Web Application (Model-View-Controller) 模板中添加了一个 ApplicationDbContext 类和我的 Transaction 类。

当我尝试运行 Add-Migration AddsTransactions 时出现此错误:

The entity type 'Transaction' requires a primary key to be defined.

这是我的 ApplicationDbContext:

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Transactions;

namespace WebApplication4.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}

public DbSet<Transaction> Transactions { get; set; }
}
}

还有我的 Transaction 模型类:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;

namespace WebApplication4.Models
{
public class Transaction
{
[Key]
public int Id { get; set; }
public DateTimeOffset TransactionDate { get; set; }
public decimal TransactionAmount { get; set; }

public bool OnHold
{
get { return this.FundingStatus == FundingStatus.Held; }
set { this.FundingStatus = FundingStatus.Held; }
}

public FundingStatus FundingStatus { get; set; }
}

public enum FundingStatus
{
New,
Submitted,
Funded,
Held
}
}

根据我的阅读,Entity Framework Core 应该看到我有一个名为 Id 的属性并将其作为我的主键,如果出于某种奇怪的原因,它没有这样做,[Key] 属性应该强制它成为主键。

不幸的是,现实似乎不同意我的看法。有什么想法吗?

最佳答案

今天的类(class)是“不要只点击 Intellisense 给你的第一件事,尤其是在使用模糊的类名时”

原来我不想using System.Transactions;,我想在我的ApplicationDbContext 文件中using WebApplication4.Models

关于c# - 实体类型需要定义主键,键属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com