我们正在使用几年前创建的数据库,并且希望保持表名称相同。
我们所有的表都命名为:“tbl_Orders”,但我们希望模型/控制器等的类名称为 Orders/OrdersController/等。我们使用实体框架将类映射到我们的表。
抱歉,如果之前有人问过这个问题,我尝试搜索但空手而归......
解决方案:
经过与斯科特·张伯伦(Scott Chamberlain)的一番反复讨论后,我们得出的结论是,这两个答案都是正确的。我继续将马苏德的回答标记为已接受,因为这就是我所走的路线。感谢所有提供帮助的人(尤其是斯科特)。
您可以使用 Table 属性或 Fluent api 在数据库中的表名称和类名称之间进行映射
[Table("tbl_Blogs")]
public class Blog
第三方编辑
实体框架核心提供相同的选项来映射表名或列
- 映射表名称 https://learn.microsoft.com/en-us/ef/core/modeling/entity-types?tabs=data-annotations#table-name
- 映射列名称 https://learn.microsoft.com/en-us/ef/core/modeling/entity-properties?tabs=data-annotations%2Cwithout-nrt#column-names
可以使用属性来完成映射
[Table("blogs")]
public class Blog
{
[Column("blog_id")]
public int BlogId { get; set; }
public string Url { get; set; }
}
或者使用 Fluent api
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.ToTable("blogs");
modelBuilder.Entity<Blog>()
.Property(b => b.BlogId)
.HasColumnName("blog_id");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)