BLOB存储数据库提供程序
有两个数据库提供程序实现;
如果你已基于应用程序启动模板创建了解决方案,则可以使用 命令将相关软件包自动添加到解决方案中.
在包含解决方案(.sln
)文件的文件夹中打开命令行运行以下命令:
此命令将所有NuGet软件包添加到解决方案的相应层. 如果使用的是EF Core,它会添加必要的配置,添加新的数据库迁移并更新数据库.
手动安装
你可以只安装 Volo.Abp.BlobStoring.Database.EntityFrameworkCore
或 Volo.Abp.BlobStoring.Database.MongoDB
(根据你的偏好),因为它们依赖其他包.
安装完成后,添加 DepenedsOn
属性到相关.下面是由上面列出的相关NuGet包定义的模块类列表:
BlobStoringDatabaseDomainModule
BlobStoringDatabaseDomainSharedModule
BlobStoringDatabaseEntityFrameworkCoreModule
BlobStoringDatabaseMongoDbModule
如果你正在使用EF Core,还需要配置你的Migration DbContext将BLOB存储表添加到你的数据库. 在 OnModelCreating
方法中调用 builder.ConfigureBlobStoring()
扩展方法来包含到DbContext的映射. 你可以使用标准的 和 Update-Database
命令在数据库中创建必要的表.
如果你要使用你的 Default
连接字符串,则不需要做任何其他配置.
如果要将BLOB存储到单独的数据库,请在配置文件(appsettings.json
)中将 AbpBlobStoring
用作连接字符串名称. 请阅读文档了解如何为所需模块创建和使用其他数据库.
配置容器
如同所述,配置是在模块类的 ConfigureServices
方法完成的.
示例: 配置为默认使用数据库系统存储提供程序
Configure<AbpBlobStoringOptions>(options =>
options.Containers.ConfigureDefault(container =>
{
container.UseDatabase();
});
参阅 学习如何为指定容器配置提供程序.
它需要使用BLOB存储服务来使用BLOB存储系统. 但是如果要处理数据库表/实体,可以使用以下信息.
此模块定义的实体:
DatabaseBlobContainer
(aggregate root) 表示存储在数据库中的容器.DatabaseBlob
(aggregate root) 表示数据库中的BLOB.
仓储
IDatabaseBlobContainerRepository
IDatabaseBlobRepository
你还可以使用 IRepository
和 IRepository
来获得 IQueryable
能力. 更多信息请参阅仓储文档.
DatabaseBlobProvider
是实现数据库BLOB存储提供程序的主要服务,如果你想要通过覆盖/替换它(不要替换IBlobProvider
接口,而是替换 类).