如何在 ABP 框架中从 Entity Framework 创建视图 (SQL)
How to create View (SQL) from Entity Framework in ABP Framework
我的情况是我需要从另一个数据库查询并在我的应用程序中显示结果。两个数据库都在同一台服务器上。我想到了在我的数据库中创建 SQL-View 的想法,它会查询其他数据库以获取我想要的值。但是我不太确定如何从 ABP 框架创建或映射 SQL-View?
我正在使用带有 Angular 模板的完整 .Net 框架。
在数据库中创建您的 table 视图。然后使用 EF FluentAPI 配置视图映射。这是示例代码:
1.创建 POCO class 映射:
public class YourView
{
public int Id { get; set; }
public string Value { get; set; }
}
2。 EF FluentAPI 映射配置:
创建地图class:
public class YourViewMap : IEntityTypeConfiguration<YourView>
{
public void Configure(EntityTypeBuilder<YourView> builder)
{
builder.ToTable("YourViewName");
}
}
将映射配置添加到您的 DbContext(例如 AbpCoreDbContext)。覆盖 OnModelCreating 方法:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration(new YourViewMap ());
base.OnModelCreating(modelBuilder);
}
3。获取数据:
使用 IRepository<YourView>
从视图中查询数据。
P.S: 相关问题 how to use views in code first entity framework
EF 不直接支持创建视图。所以你可以试试下面的方法。
- 使用
Add-Migration
创建空迁移。
- 在生成迁移的
Up
方法中编写你的Create View脚本
和 运行 使用 context.Database.ExecuteSqlCommand
方法的脚本。
- 声明您的 class 并像您对模型所做的那样使用
Table
class。
[Table("YourViewName")]
public class YourClassName
{
}
- 像这样忽略你的观点class
modelBuilder.Ignore<yourClassName>();
在 OnModelCreating
方法中。
- 运行
Update-Database
在程序包管理器控制台中。
为您的旧数据库创建一个新的 DbContext
。您可以在一个 ABP 应用程序中有多个 DbContext
。每个 DbContext
都有自己的连接字符串。创建视图有点老套。
我的情况是我需要从另一个数据库查询并在我的应用程序中显示结果。两个数据库都在同一台服务器上。我想到了在我的数据库中创建 SQL-View 的想法,它会查询其他数据库以获取我想要的值。但是我不太确定如何从 ABP 框架创建或映射 SQL-View?
我正在使用带有 Angular 模板的完整 .Net 框架。
在数据库中创建您的 table 视图。然后使用 EF FluentAPI 配置视图映射。这是示例代码:
1.创建 POCO class 映射:
public class YourView
{
public int Id { get; set; }
public string Value { get; set; }
}
2。 EF FluentAPI 映射配置:
创建地图class:
public class YourViewMap : IEntityTypeConfiguration<YourView>
{
public void Configure(EntityTypeBuilder<YourView> builder)
{
builder.ToTable("YourViewName");
}
}
将映射配置添加到您的 DbContext(例如 AbpCoreDbContext)。覆盖 OnModelCreating 方法:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration(new YourViewMap ());
base.OnModelCreating(modelBuilder);
}
3。获取数据:
使用 IRepository<YourView>
从视图中查询数据。
P.S: 相关问题 how to use views in code first entity framework
EF 不直接支持创建视图。所以你可以试试下面的方法。
- 使用
Add-Migration
创建空迁移。 - 在生成迁移的
Up
方法中编写你的Create View脚本 和 运行 使用context.Database.ExecuteSqlCommand
方法的脚本。 - 声明您的 class 并像您对模型所做的那样使用
Table
class。
[Table("YourViewName")]
public class YourClassName
{
}
- 像这样忽略你的观点class
modelBuilder.Ignore<yourClassName>();
在OnModelCreating
方法中。 - 运行
Update-Database
在程序包管理器控制台中。
为您的旧数据库创建一个新的 DbContext
。您可以在一个 ABP 应用程序中有多个 DbContext
。每个 DbContext
都有自己的连接字符串。创建视图有点老套。