Entity framework 如何在ABP框架中从实体框架创建视图(SQL)
我的情况是,我需要从另一个数据库进行查询,并在应用程序中显示结果。两个数据库位于同一台服务器上。我想出了一个在我的数据库中创建SQL视图的主意,它可以查询其他数据库中我想要的值。但我不太确定如何从ABP框架创建或映射SQL视图Entity framework 如何在ABP框架中从实体框架创建视图(SQL),entity-framework,sql-view,aspnetboilerplate,Entity Framework,Sql View,Aspnetboilerplate,我的情况是,我需要从另一个数据库进行查询,并在应用程序中显示结果。两个数据库位于同一台服务器上。我想出了一个在我的数据库中创建SQL视图的主意,它可以查询其他数据库中我想要的值。但我不太确定如何从ABP框架创建或映射SQL视图 我正在使用带Angular模板的完整.Net framework。在数据库中创建表视图。然后使用EF FluentAPI配置视图映射。以下是示例代码: 1。创建要映射的POCO类: public class YourView { public int
我正在使用带Angular模板的完整.Net framework。在数据库中创建表视图。然后使用EF FluentAPI配置视图映射。以下是示例代码: 1。创建要映射的POCO类:
public class YourView
{
public int Id { get; set; }
public string Value { get; set; }
}
2。EF FluentAPI映射配置:
public class YourView
{
public int Id { get; set; }
public string Value { get; set; }
}
创建地图类:
public class YourViewMap : IEntityTypeConfiguration<YourView>
{
public void Configure(EntityTypeBuilder<YourView> builder)
{
builder.ToTable("YourViewName");
}
}
3。获取数据:
使用IRepository
从视图中查询数据
备注:EF中不直接支持创建视图的相关问题。因此,您可以尝试以下方法
- 使用
创建空迁移添加迁移
- 编写您在生成的迁移的
方法中创建的视图脚本 并使用Up
方法运行脚本context.Database.ExecuteSqlCommand
- 声明类并使用
,就像对模型类所做的那样表
[表格(“YourViewName”)]
公共类YourClassName
{
}
- 像这样忽略视图类
modelBuilder.Ignore()代码>在建模创建方法中
- 在Package Manager控制台中运行更新数据库
DbContext
。在ABP应用程序中可以有多个DbContext
。每个DbContext
都有自己的连接字符串。创建视图有点粗糙。您是否使用代码优先的方法?是的,我使用。我认为使用ABP框架代码优先是唯一可用的选项,不是吗?请提及EF和项目模板versionTanks@vivek。请您解释一下第4步的作用。如果您不这样做,它将尝试创建表“YourViewName”。所以,通过执行此步骤,您将强制不创建表,而是使用SQL创建视图。