实体框架中数据注释中的表名称不起作用。

mig*_*eia 3 asp.net-mvc data-annotations ef-code-first entity-framework-6

我使用实体框架 6 在 MVC 5 中创建一个项目。我使用的是代码优先方法。我想在其中一个模型中为表定义一个与默认名称不同的名称。为此,我使用 System.ComponentModel.DataAnnotations 名称空间并定义该类,如下所示:

[Table(Name="Auditoria")]
public class AuditoriaDAL
{
    [Key]
    public int AuditoriaId { get; set; }

    ... 
}
Run Code Online (Sandbox Code Playgroud)

运行该项目,我得到一个数据库,其中有一个名为 AuditoriaDALs 的表。为什么表的名称不是我定义的名称?

Ste*_*ene 6

当您需要引用 System.ComponentModel.DataAnnotations.Schema.Table 时,您正在引用 System.Data.Linq.Mapping.Table 属性。所以要么这样做:

[System.ComponentModel.DataAnnotations.Schema.Table("Auditoria")]
public class AuditoriaDAL
{
    [Key]
    public int AuditoriaId { get; set; }

    ... 
}
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

using System.ComponentModel.DataAnnotations.Schema;
...

[Table("Auditoria")]
public class AuditoriaDAL
{
    [Key]
    public int AuditoriaId { get; set; }

    ... 
}
Run Code Online (Sandbox Code Playgroud)

https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx