设置概念验证应用程序 . 我在VS2017的 Web Application (Model-View-Controller)
模板中添加了 ApplicationDbContext
类和我的 Transaction
类 .
当我尝试运行 Add-Migration AddsTransactions
时出现此错误:
实体类型“交易”需要定义主键 .
这是我的 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]
属性应该强制它成为主键 .
不幸的是,现实似乎与我不同意 . 有任何想法吗?
1 回答
今天的教训是“不要只是点击Intellisense给你的第一件事,特别是当使用模糊的类名时”
结果我不想
using System.Transactions;
,我想using WebApplication4.Models
在我的ApplicationDbContext
文件中 .