我正在 EF 6 中尝试自定义命名约定。我有 2 个表和一个联结表(WebUser、UserRequest、WebUserUserRequest)。
我编写了应该能够重命名表的函数:从 WebUser 到 web_user
private string GetTableName(Type type)
{
var result = Regex.Replace(type.Name, ".[A-Z]", m => m.Value[0] + "_" + m.Value[1]);
return result.ToLower();
}
它是这样应用的:
modelBuilder.Types()
.Configure(c => c.ToTable(GetTableName(c.ClrType)));
该功能在除联结表之外的所有表上都可以正常工作。
源模型:
网络用户、用户请求
生成的数据库表:
web_user、user_request、WebUserUserRequest(而不是 web_user_user_request)
是否可以通过这种方式设置连接命名约定?有没有办法配置命名对流来处理如上所述的所有联结表(替换所有大写并添加“_”)?