为实体框架5中的所有实体设置表名

时间:2019-06-20 14:38:38

标签: .net entity-framework

我已经创建了一个EF6应用程序,它指向一个mysql数据库。我创建了一个用于根据实体类名称设置表名称的全局规则,因此名为UserDocument的实体将自动指向名为user_document的表。我使用了以下代码

public class ComplianceDB : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Types().Configure(c => c.ToTable(GetTableName(c.ClrType)));
    }

    private string GetTableName(Type type)
    {
        return Regex
            .Replace(type.Name, ".[A-Z]", m => m.Value[0] + "_" + m.Value[1])
            .ToLower();
    }

它可以在EntityFramework 6中使用,但是由于托管限制(FullTrust),现在我不得不降级到EF5,当我更改对EF5的引用时,我得到了消息:

'DbModelBuilder' does not contain a definition for 'Types' and no accessible extension method 'Types' accepting a first argument of type 'DbModelBuilder' could be found

如何为EF5中的所有实体设置表名?

0 个答案:

没有答案