Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何在ABP框架中从实体框架创建视图(SQL)_Entity Framework_Sql View_Aspnetboilerplate - Fatal编程技术网

Entity framework 如何在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

我的情况是,我需要从另一个数据库进行查询,并在应用程序中显示结果。两个数据库位于同一台服务器上。我想出了一个在我的数据库中创建SQL视图的主意,它可以查询其他数据库中我想要的值。但我不太确定如何从ABP框架创建或映射SQL视图


我正在使用带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创建视图。