Я хотел бы присвоить имя схемы для моего объекта без указания имени таблицы. Теперь я могу сделать только: modelBuilder.Entity<T>().ToTable("MyEntities", "myschema");
есть ли способ сделать что-то вроде: modelBuilder.Entity<T>().ToTable("myschema")
? Пожалуйста, примите во внимание, что я не могу использовать PluralizationService и рассчитать имя_таблицы вручную, так как PluralizationService становятся внутренними ...Entity Framework 6. Название схемы
2
A
ответ
1
Как насчет ...
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» просто не поддерживает его. –