手动将MySQL数据库表/字段映射到C#实体类

时间:2010-12-05 18:18:54

标签: c# mysql entity-framework-4 asp.net-mvc-3

使用Entity Framework的第4版,您可以选择执行他们称之为Code First的操作。问题是你的类和字段/属性的命名需要与我所知道的数据库相匹配。我正在使用MySQL,因此我在命名时使用所有小写和下划线,因为所有操作系统都不支持大小写,并且如果你试图强制它可以使MySQL行为怪异。问题是我使用了使用camelCase和PascalCase的标准C#命名约定。有没有办法将我的数据库中的命名映射到我在C#中的类而不使用实体模型设计器(.edmx文件),因为设计似乎有点儿麻烦。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用将在类的第一个实例化时运行的可覆盖方法OnModelCreating。你可以在那里覆盖单个表

public class Context : DbContext {

    //your models

    protected override void OnModelCreating(ModelBuilder modelBuilder) {
        modelBuilder.Entity<SomeTable>()
                         .MapSingleType()
                         .ToTable("YourTableNameInDatabase");
    }
}

就这么简单:)