mirror of https://github.com/abpframework/abp.git
csharpabpc-sharpframeworkblazoraspnet-coredotnet-coreaspnetcorearchitecturesaasdomain-driven-designangularmulti-tenancy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tree:
8ae3c81008
RandomHelper
abp-release-post
abp-studio/issue/2891
add-loading-component
advanced-features
article/angular-multithreading
article/resource-based-api
auto-merge/prerel-8-2/2729
auto-merge/rel-10-2/4454
auto-merge/rel-10-2/4463
auto-merge/rel-10-5/4643
auto-merge/rel-10-5/4645
auto-merge/rel-10-5/4680
auto-merge/rel-10-5/4694
auto-merge/rel-7-4/2239
auto-merge/rel-8-0/2472
auto-merge/rel-8-0/2715
auto-merge/rel-8-0/2741
auto-merge/rel-8-1/2527
auto-merge/rel-9-1/3656
blazor-full-stack-web-ui-interactiveauto
codex/update-abp-ai-agent-deep-dive-title
copilot/allow-adding-public-website
copilot/sub-pr-24469
copilot/sub-pr-24636
copilot/sub-pr-24842
copilot/sub-pr-24889
copilot/sub-pr-24949
copilot/update-documentation-react-native
dev
dgnyldrm7-patch-1
docs-test-1
docs-unification
docs/studio-2.2.1
docs/studio-2.2.2
docs/studio-2.2.3
docs/studio-2.2.4
document-abp-run-watch-command
documentation/#20827-modular-monolith-application
documentation/20827
documentation/abp-extensible-form-doc
enisn-patch-1
enisn/blobstoring-bunnycdn
feat/#23955
feat/ai-assistant-article-enhancements
feat/dynamic-form-component
feature/#19594
feature/#23180
feature/ai-chat-history-docs
feature/ssr-migration-schematic
fix-admin-docs-test
fix/#20241
fix/#23795
gizem/HTML-encode-TagHelper-xss-test
gizem/cpm-nightly-support
gizem/security-logs
gizem/switch-to-nightly
hybrid-ui
issue-#23231
issue-#3417
issue-#3591
issue-#3596
issue-#6679
issue-#6768
issue-18421
issue-19307
issue-20436
issue-20924-2
issue-21015
issue-22408
issue-23113
issue-23231
issue-23286
issue-24272
issue-24438-test
issue-24635-test
issue-24672
issue-24674
issue-24918-2
issue-2884
issue-3596
issue-3870/L
issue-5131
issue-remove-abp-io-localization
issue-volo-21285
issue-vs-7809
issue/22675
issue/25581
issue/abp-ng-upgrade
issue/assign-available-port-for-suite
issue/updateAngularInstallers
issut/7552
jenkins-abp-release-308
maliming/drop-jquery-migrate
maliming/dynamic-job-tenant
maliming/permission-batch-update
mansur-vs-internal-#7864
mauiglobalbundle
migrating-abp-packages/core
migrating-abp-packages/identity
migrating-abp-packages/setting-management
migrating-abp-packages/tenant-management
migrating-abp-packages/theme-shared
net11.0
pr/2526
pr/6814
prerel-9.0
rel-1.0
rel-1.1
rel-10.0
rel-10.1
rel-10.2
rel-10.3
rel-10.4
rel-10.5
rel-10.6
rel-10.7
rel-2.0
rel-2.1
rel-2.2
rel-2.3
rel-2.4
rel-2.5
rel-2.6
rel-2.7
rel-2.8
rel-2.9
rel-3.0
rel-3.1
rel-3.2
rel-3.3
rel-4.0
rel-4.1
rel-4.2
rel-4.3
rel-4.4
rel-5.0
rel-5.1
rel-5.2
rel-5.3
rel-6.0
rel-7.0
rel-7.1
rel-7.2
rel-7.3
rel-7.4
rel-8.0
rel-8.1
rel-8.2
rel-8.3
rel-9.0
rel-9.1
rel-9.2
rel-9.3
remove-deprecateds
return-code-vs-exception-article
revert-18876-blazor-full-stack-web-ui
revert-20264-EngincanV/cli-old-vs-new
salihozkara-patch-1
salihozkara-patch-2
salihozkara/blazorise-validation-message
salihozkara/complex-property
salihozkara/fix-image
salihozkara/fixDatePicker
salihozkara/low-code-107-feature-docs
salihozkara/lowcode-page-interceptor-schemas
salihozkara/mapperly-test
studio-custom-command-doc
studio-document-start-and-wait
studio-linux-community-article
taskever--3b6w1uy1
template-config-provider
test-branch-24299
test/issue-25858
update-cli-docs
update-doc
update-latest-versions-7.4.3
update-latest-versions-8.1.2
update-latest-versions-8.1.5
update-latest-versions-8.2.3
update-latest-versions-9.0.7
update-latest-versions-9.1.0
update-upgrade-cod-23-08-2024
upgrade-command-doc
volobox--bhsygwll
volobox--dcqsmt9p
vsInternal-viewcChangeHistory-localization
vsinternal-7565
0.10.0
0.11.0
0.12.0
0.13.0
0.14.0
0.15.0
0.16.0
0.17.0.0
0.18.0
0.18.1
0.19.0
0.20.0
0.20.1
0.21.0
0.22.0
0.3.7
0.4.0
0.4.1
0.4.1.1
0.5.0
0.6.0
0.6.1
0.7.0
0.7.1
0.8.0
0.9.0
1.0.0
1.0.2
1.1.0
1.1.1
1.1.2
10.0.0
10.0.0-rc.1
10.0.0-rc.2
10.0.0-rc.3
10.0.1
10.0.2
10.0.3
10.1.0
10.1.0-rc.1
10.1.0-rc.2
10.1.0-rc.3
10.1.1
10.2.0
10.2.0-rc.1
10.2.0-rc.2
10.2.0-rc.3
10.2.0-rc.4
10.2.1
10.3.0
10.3.0-rc.1
10.3.0-rc.2
10.4.0
10.4.0-rc.1
10.4.0-rc.2
10.4.1
10.5.0
10.5.0-rc.1
10.5.0-rc.2
10.5.0-rc.3
10.5.0-rc.4
10.6.0
10.6.0-rc.1
10.6.0-rc.2
10.6.0-rc.3
10.7.0-rc.1
10.7.0-rc.2
10.7.0-rc.3
10.7.0-rc.4
2.0.0
2.0.1
2.1.0
2.1.1
2.2.0
2.2.1
2.3
2.3.0
2.4.0
2.4.1
2.5.0
2.6.0
2.6.1
2.6.2
2.7.0
2.8.0
2.9.0
3.0.0
3.0.1
3.0.2
3.0.3
3.0.4
3.0.5
3.1.0
3.1.0-rc.1
3.1.0-rc.2
3.1.0-rc.3
3.1.0-rc.4
3.1.1
3.1.2
3.2.0
3.2.0-rc.1
3.2.0-rc.2
3.2.1
3.3.0
3.3.0-rc.1
3.3.0-rc.2
3.3.1
3.3.2
4.0.0
4.0.0-rc.1
4.0.0-rc.2
4.0.0-rc.3
4.0.0-rc.4
4.0.0-rc.5
4.0.1
4.0.2
4.1.0
4.1.0-rc.1
4.1.0-rc.2
4.1.1
4.1.2
4.2.0
4.2.0-rc.1
4.2.0-rc.2
4.2.1
4.2.2
4.3.0
4.3.0-rc.1
4.3.0-rc.2
4.3.1
4.3.2
4.3.3
4.4.0
4.4.0-rc.1
4.4.0-rc.2
4.4.1
4.4.2
4.4.3
4.4.4
5.0.0
5.0.0-beta.1
5.0.0-beta.2
5.0.0-beta.3
5.0.0-rc.1
5.0.0-rc.2
5.0.1
5.0.2
5.1.0
5.1.1
5.1.2
5.1.3
5.1.4
5.2.0
5.2.0-rc.1
5.2.0-rc.2
5.2.1
5.2.2
5.3.0
5.3.0-rc.1
5.3.0-rc.2
5.3.0-rc.3
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
6.0.0
6.0.0-rc.1
6.0.0-rc.2
6.0.0-rc.3
6.0.0-rc.4
6.0.0-rc.5
6.0.1
6.0.2
6.0.3
7.0.0
7.0.0-rc.1
7.0.0-rc.2
7.0.0-rc.3
7.0.0-rc.4
7.0.0-rc.5
7.0.0-rc.6
7.0.1
7.0.2
7.0.3
7.1.0
7.1.0-rc.1
7.1.0-rc.2
7.1.0-rc.3
7.1.1
7.2.0-rc.1
7.2.0-rc.2
7.2.1
7.2.2
7.2.3
7.3.0
7.3.0-rc.1
7.3.0-rc.2
7.3.0-rc.3
7.3.1
7.3.2
7.3.3
7.4.0
7.4.0-rc.1
7.4.0-rc.2
7.4.0-rc.3
7.4.0-rc.4
7.4.0-rc.5
7.4.1
7.4.2
7.4.3
7.4.4
7.4.5
8.0.0
8.0.0-rc.1
8.0.0-rc.2
8.0.0-rc.3
8.0.1
8.0.2
8.0.3
8.0.4
8.0.5
8.0.6
8.1.0
8.1.0-rc.1
8.1.0-rc.2
8.1.0-rc.3
8.1.0-rc.4
8.1.1
8.1.2
8.1.3
8.1.4
8.1.5
8.2.0
8.2.0-rc.1
8.2.0-rc.2
8.2.0-rc.3
8.2.0-rc.4
8.2.0-rc.5
8.2.1
8.2.2
8.2.3
8.3.0
8.3.0-rc.1
8.3.0-rc.2
8.3.0-rc.3
8.3.1
8.3.2
8.3.3
8.3.4
9.0.0
9.0.0-rc.1
9.0.0-rc.2
9.0.0-rc.3
9.0.1
9.0.2
9.0.3
9.0.4
9.0.5
9.0.6
9.0.7
9.0.8
9.1.0
9.1.0-rc.1
9.1.0-rc.2
9.1.0-rc.3
9.1.1
9.1.2
9.1.3
9.2.0
9.2.0-rc.1
9.2.0-rc.2
9.2.0-rc.3
9.2.0-rc.4
9.2.1
9.2.2
9.2.3
9.2.4
9.3.0
9.3.0-rc.1
9.3.0-rc.2
9.3.0-rc.3
9.3.0-rc.4
9.3.1
9.3.2
9.3.3
9.3.4
9.3.5
9.3.6
9.3.7
archive/Blazorise-Form-Submit
archive/EngincanV/react-docs-updates
archive/abp-plugin
archive/abp-united-pre-merge
archive/auto-merge/prerel-9-0/3134
archive/auto-merge/prerel-9-0/3181
archive/auto-merge/rel-10-0/4007
archive/auto-merge/rel-10-0/4064
archive/auto-merge/rel-10-0/4133
archive/auto-merge/rel-10-1/4237
archive/auto-merge/rel-10-4/4526
archive/auto-merge/rel-7-4/2276
archive/auto-merge/rel-8-2/2851
archive/auto-merge/rel-8-3/3151
archive/auto-merge/rel-9-0/3296
archive/auto-merge/rel-9-0/3304
archive/auto-merge/rel-9-2/3571
archive/auto-merge/rel-9-2/3652
archive/before-net10
archive/data-collection-code-review-2
archive/data-collection-review-3
archive/data-collection-review-5
archive/devnot-demo
archive/ebicoglu-patch-3
archive/feat/typescript-on-mvc
archive/feature/logo-provider
archive/halil-presentation-2024-05
archive/ingress-nginx/ingress-nginx
archive/issue-23231-v2
archive/issue-5384
archive/patch-1-engincanv
v0.3.1
v0.3.2
v0.3.2.1
v0.3.2.2
v0.3.3
v0.3.3.1
v0.3.3.2
v0.3.4
v0.3.5
v0.3.6
v0.6.2
v1.1.1
v9.2.0-preview
${ noResults }
2.7 KiB
2.7 KiB
MongoDB 集成
本文会介绍如何将MongoDB集成到基于ABP的应用程序中以及如何配置它
安装
集成MongoDB需要用到Volo.Abp.MongoDB这个包.将它安装到你的项目中(如果是多层架构,安装到数据层和基础设施层):
Install-Package Volo.Abp.MongoDB
然后添加 AbpMongoDbModule 依赖到你的 模块中:
using Volo.Abp.MongoDB;
using Volo.Abp.Modularity;
namespace MyCompany.MyProject
{
[DependsOn(typeof(AbpMongoDbModule))]
public class MyModule : AbpModule
{
//...
}
}
创建一个Mongo Db Context
ABP中引入了 Mongo Db Context 的概念(跟Entity Framework Core的DbContext很像)让使用和配置集合变得更简单.举个例子:
public class MyDbContext : AbpMongoDbContext
{
public IMongoCollection<Question> Questions => Collection<Question>();
public IMongoCollection<Category> Categories => Collection<Category>();
protected override void CreateModel(IMongoModelBuilder modelBuilder)
{
modelBuilder.Entity<Question>(b =>
{
b.CollectionName = "Questions";
});
}
}
- 继承
AbpMongoDbContext类 - 为每一个mongo集合添加一个公共的
IMongoCollection<TEntity>属性.ABP默认使用这些属性创建默认的仓储 - 重写
CreateModel方法,可以在方法中配置集合(如设置集合在数据库中的名字)
将 Db Context 注入到依赖注入中
在你的模块中使用 AddAbpDbContext 方法将Db Context注入到依赖注入系统中.
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.MongoDB;
using Volo.Abp.Modularity;
namespace MyCompany.MyProject
{
[DependsOn(typeof(AbpMongoDbModule))]
public class MyModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddMongoDbContext<MyDbContext>();
//...
}
}
}
添加默认的仓储
在注入的时候使用 AddDefaultRepositories(), ABP就能自动为Db Context中的每一个实体创建仓储:
services.AddMongoDbContext<MyDbContext>(options =>
{
options.AddDefaultRepositories();
});
这样就会默认为每一个聚合根实体(继承自AggregateRoot的类)创建一个仓储.如果你也想为其他的实体创建仓储,将 includeAllEntities 设置为 true就可以了:
services.AddMongoDbContext<MyDbContext>(options =>
{
options.AddDefaultRepositories(includeAllEntities: true);
});
现在可以在你的服务中注入并使用IRepository<TEntity> 或 IQueryableRepository<TEntity>了.