首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架6.架构名称

实体框架6.架构名称
EN

Stack Overflow用户
提问于 2013-02-11 02:54:28
回答 1查看 816关注 0票数 2

我想为我的实体指定模式名称,而不指定表名。现在,我只能这样做:modelBuilder.Entity<T>().ToTable("MyEntities", "myschema");有没有一种方法可以这样做:modelBuilder.Entity<T>().ToTable("myschema")?请考虑到我不能使用PluralizationService并手动计算表名,因为PluralizationService变成了内部...

EN

回答 1

Stack Overflow用户

发布于 2013-02-11 22:48:58

不如..。

代码语言:javascript
复制
var t = typeof (T);
var name= t.Name;
modelBuilder.Entity<T>().ToTable(name, "myschema")

如果需要上下文中的DbSet复数名称

代码语言:javascript
复制
 public DbSet<Single> Plural{ get; set; }

然后,可以修改这个小扩展以返回您想要的值。两者的组合,没有循环。但我相信你会找到合适的变种。

代码语言:javascript
复制
  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;
 }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14801354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档