我已经创建了一个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中的所有实体设置表名?