是否可以在EF中为特定的表/类设置属性,然后根据该属性查询这些表的列表?
答案 0 :(得分:1)
添加属性partial
类。然后在当前程序集中获取具有该属性的类型列表
Assembly thisAsm = Assembly.GetExecutingAssembly();
var tableTypes = thisAsm.GetTypes()
.Where(t => t.IsDefined(typeof(MyAttribute), false));
答案 1 :(得分:0)
好的,我认为我没有使用程序集就可以使用它:
public class FoodAttribute : Attribute { }
public class Fruit { }
public class Coin { }
public class Cereal { }
public class FooContext : DbContext {
[Food]
public virtual DbSet<Fruit> Fruits { get; set; }
public virtual DbSet<Coin> Coins { get; set; }
[Food]
public virtual DbSet<Cereal> Cereals { get; set; }
}
获取具有Food:
属性的表列表var tableList = typeof(FooContext).GetProperties()
.Where(n => n.IsDefined(typeof(ClientTraitAttribute)))
.Select(n => n.PropertyType.GetGenericArguments()[0].Name).ToList();
感谢Yuriy向我展示了IsDefined方法! :d