c# - ASP.Net 错误 System.InvalidOperationException
问题描述
我正在尝试制作可以管理客户的应用程序。所以我创建了数据库和表 tecnici,我可以在其中插入我所有的技术人员。
所有 CRUD 操作都有效,直到我创建表clienti
来插入我的客户。我为 制作了控制器、模型和视图clienti
,当我运行应用程序时,它给了我这个错误System.InvalidOperationException: '实体类型'Cliente'需要定义一个主键。如果您打算使用无密钥实体类型,请调用“HasNoKey()”。
ClientiController中的错误,当我尝试在 TecniciController 中加载所有客户端 ftom 表错误时,它给了我同样的错误 clienti
这是 ClientiController 的代码
public class ClientiController: Controller
{
private readonly AppDbContext _db;
public ClientiController(AppDbContext db)
{
_db = db;
}
public IActionResult Index()
{
var datiClienti = _db.tboClienti.ToList();
return View(datiClienti);
}
public IActionResult CreareCliente()
{
return View();
}
[HttpPost]
public async Task<IActionResult> CreareCliente(Cliente cliente)
{
if (ModelState.IsValid)
{
_db.Add(cliente);
await _db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(cliente);
}
}
这是模型客户
public class Cliente
{
[Required(ErrorMessage = "Inserisci il nome di proprietario della azienda")]
[Display(Name = "Nome")]
public string Nome { get; set; }
[Required(ErrorMessage = "Inserisci il cognome di proprietario della azienda")]
[Display(Name = "Cognome")]
public string Cognome { get; set; }
[Display(Name = "Azienda")]
public string Nome_azienda { get; set; }
[Required(ErrorMessage = "Inserisci numero cellulare della Azienda")]
[DataType(DataType.PhoneNumber)]
[Display(Name = "Telefono")]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$",
ErrorMessage = "Numero non valido")]
public string Cellulare { get; set; }
}
我有我的连接字符串appsettings.json
这是我配置数据库的地方:
public class AppDbContext: DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options): base (options)
{
}
public DbSet<Tecnico> tboTecnici { get; set; }
public DbSet<Cliente> tboClienti { get; set; }
}
直到只有一张桌子(桌子:)tecnici
它没有给我带来问题。当我为表 tboClienti 创建控制器模型和视图时,它给了我错误。
任何建议如何解决这个问题。提前致谢!
解决方案
尝试在您的客户端类中定义一个主键。
[Key]
public int Id { get; set; }
推荐阅读
- python - 如何管理查询中的并发性?
- android - 在 sqlite 中构建视图时合并两个字符串
- macos - Homebrew 软件包安装与 homebrew 安装的 keg-only 库?怎么做?
- java - Eclipse 字符串缓存错误,== 没有按预期工作
- apache-nifi - NiFi:没有 Web UI 的生产使用
- javascript - 使用 Vue 隐藏或显示元素时,MDL 样式会丢失
- javascript - 如何将父组件的子组件包装在 HOC 中并在 React 中呈现它们?
- html - CSS - 将 flexbox 下拉菜单置于内容之上
- c - 语言标准版本与编译器版本
- javascript - 如何根据语言环境确定年、月、日排序?