EF代码首先从Pascal Case Properties迁移到小写列

时间:2017-02-07 07:43:57

标签: .net ef-code-first entity-framework-6 ef-migrations ef-code-first-mapping

在Entity Framework 6 Code中,是否有一种方法(可能通过Data Annotations或Fluent API),以便Migrations生成的数据库具有小写列名,即使我的模型类具有Pascal Casing属性?

即。这堂课:

 public class Person
    {
        public int PersonId { get; set; }
        public string FirstName { get; set; }
        public string Surname { get; set; }
}

应映射到此表(即迁移应生成此表):

person
    person
    firstname
    surname

甚至这样的事情会很好:

person
    person_id
    first_name
    surname

P.S。我正在使用MySQL数据库......谢谢

1 个答案:

答案 0 :(得分:0)

是的,可以使用数据注释[Table(“ table_name”)]和[Column(“ column_name”)]]。

一种更好的列名方法是在OnModelCreating()方法中使用write custom conventions。例如,类似

modelBuilder
    .Properties()
    .Configure(p => p.HasColumnName(p.ClrPropertyInfo.Name.ToLower()));

并提供您的表ID

modelBuilder
    .Properties()
    .Configure(p => p.IsKey().HasColumnName(///the name you want///));

我不确定表名的自定义约定,但是我个人偏爱对表使用数据注释。