......怎么
var t = typeof (T);
var name= t.Name;
modelBuilder.Entity<T>().ToTable(name, "myschema")
如果从上下文需要DbSet复数名称
public DbSet<Single> Plural{ get; set; }
然后,这个小小的扩展可以重写,以返回你想要的值。两个组合都没有循环。但是我相信你会找到合适的变化...
public static class BosDalExtensions
{
public static List<string> GetModelNames(this DbContext context) {
var model = new List<string>();
var propList = context.GetType().GetProperties();
foreach (var propertyInfo in propList)
{
if (propertyInfo.PropertyType.GetTypeInfo().Name.StartsWith("DbSet"))
{
model.Add(propertyInfo.Name);
}
}
return model;
}
public static List<string> GetModelTypes(this DbContext context)
{
var model = new List<string>();
var propList = context.GetType().GetProperties();
foreach (var propertyInfo in propList)
{
if (propertyInfo.PropertyType.GetTypeInfo().Name.StartsWith("DbSet" ))
{
model.Add(propertyInfo.PropertyType.GenericTypeArguments[0].Name);
}
}
return model;
}
}
也许[通过架构分区多租户(新功能http://entityframework.codeplex.com/wikipage?title=Multi-tenant% 20Migrations)是适合你的东西吗? ToTable方法不支持它。 – 2013-02-11 08:06:00