entity-framework - 如何找到通用实体类型并在实体框架模型构建器中应用?
问题描述
我有一个代表数据库视图的界面。
public interface IView { }
我想使用modelbilder来设置HasNoKey()
方法。
public class DataContext : DbContext
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<IView>(buildAction =>
{
buildAction.HasNoKey();
});
base.OnModelCreating(modelBuilder);
}
}
但这会引发异常。我可以使用反射来实现它还是在实体框架核心中有任何解决方案?
解决方案
您可以在 OnModelCreating 中迭代所有模型类型。像这样:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
foreach (var t in modelBuilder.Model.GetEntityTypes().Where( t => typeof(IView).IsAssignableFrom(t.ClrType)))
{
t.IsKeyless = true;
}
base.OnModelCreating(modelBuilder);
}
推荐阅读
- xml - Android Studio 3.2.1 没有正确缩进布局 XML
- c# - 扁平化类属性中的字典
- javascript - 如何在 Angular 6+ 中正确使用 3rd 方 javascript 库
- python - 在 python 中的类方法中打印不起作用
- php - 如何从 fopen/file_get_contents 运行 PHP 代码?
- c# - 查看带有区域的组件 taghelper
- php - 默认情况下删除单选按钮在zend中选中
- java - 检查硒测试,如果所有这些 div 都有文本
- flutter - 如何在 Flutter 上的聊天气泡中实现时间文本换行行为
- java - servlet 不允许打开 form-login-page