【问题标题】:DataAnnotations issue数据注释问题
【发布时间】:2017-10-27 09:41:56
【问题描述】:

我正在关注一些关于 Visual Studio 上的 ASP.net MVC 的教程,目前我正在做关于数据库,代码优先的部分

我不明白为什么,但我的 DataAnnotations 似乎没有被考虑在内。

[Table("Restos")]
public class Resto
{
    public int Id { get; set; }
    [Required][MaxLength(10)]
    public string Nom { get; set; }
    public string Telephone { get; set; }
}

其实我创建了一个类“Resto”,所以表名自动命名为“Restoes”,但是我不想要这个名字,我想要“Restos”,没有“e” 因此,为了让我的“Restoes”表称自己为“Restos”,我使用了 [Table ("Restos")] 注释,但它没有更改其名称, 并且我的“Restoes”表中的一个字段上的 [Required] 注释也没有效果,因为“Nullable”属性始终为 True。

你能帮帮我吗?

【问题讨论】:

  • 你到底需要做什么?,你需要数据库中的表名吗?
  • 目前我的表名为“Restoes”,但我想要“Restos”,带有 DataAnnotation [Table ("Restos")] 但它在教程上,所以它不是“真正需要”,这只是为了了解它为什么不起作用
  • 您是否在修改数据库后运行了更新脚本?或者您是否尝试过卸载您的数据库(因为这是教程,我假设不包含任何重要内容)并使用具有属性的新类重新创建它?
  • 我创建了一个类“Resto”,所以表的名称自动命名为“Restoes”,但我不想要这个名称,我想要“Restos”——这是一个手动过程不能通过entityframework代码先实现。
  • 什么是更新脚本?我尝试断开连接并再次连接到数据库

标签: c# asp.net database visual-studio data-annotations


【解决方案1】:

在我看来,您没有更新数据库。当您更改模型(添加注释、重命名/创建字段等)时,您还必须将这些更改应用到数据库。它被称为迁移。它可以从包管理器控制台(工具 -> Nuget 包管理器 -> 包管理器控制台)执行。首先也是最重要的。来自控制台的所有命令都应针对项目,包含 Context 类(根据教程,任何继承 DbContext 的类,在您的情况下这是 BddContext 类)。

  1. 在项目中启用迁移:打开 PM 控制台,从下拉列表中选择所需的项目,键入以下命令“Enable-Migrations”并按 Enter
  2. 成功启用迁移后,通过执行命令“Add-Migration”创建一个
  3. 创建迁移后,执行“Update-Database”命令

彻底检查正在创建的迁移文件。事实上,该文件将包含将应用于数据库的更改列表。您可以阅读有关迁移的更多信息here。如果您想使用实体框架,强烈建议您这样做

【讨论】:

  • 在 Udpate 迁移过程中出现错误:错误编号:1832,状态:1,类:14 无法附加文件 'C:\Users\MVeron\documents\visual studio 2013\Projects\ ChoixResto\ChoixResto\App_Data\BddContextt.mdf' 作为数据库'BddContextt'。
  • @MatthieuVeron 看到这个stackoverflow.com/questions/17012839/…
  • 好的,谢谢。我试图按照您发送给我的链接上的指示进行操作。但它不起作用:hpics.li/a000fa5
  • @MatthieuVeron 然后试试这个变通办法stackoverflow.com/a/20176660/6294253 顺便说一句,你好像在第3步。迁移文件中有相关内容吗?
  • 我在我的 ConnexionString 中做了一些修改,但它不起作用,所以我取消了这个修改,现在我在我的数据库中看不到我的表了 :( 当我点击“表”时,什么都没有..我认为这是因为我删除了数据库并重新连接它。我会检查你上面的链接,谢谢
猜你喜欢
  • 2023-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多