怎么在.net Core项目中连接MongoDB数据库

这期内容当中小编将会给大家带来有关怎么在.net Core项目中连接MongoDB数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

方法如下:

连接MongoDB首先要通过Nuget添加一个MongoDB的包,下载此包

怎么在.net Core项目中连接MongoDB数据库

怎么在.net Core项目中连接MongoDB数据库

安装完毕后开始写代码了,创建一个省份实体,一个学校实体

usingMongoDB.Bson.Serialization.Attributes;usingSystem.Collections.Generic;
namespaceMongoCore.Models
{
publicclassProvince
{
[BsonId]
publicintProvinceID{get;set;}

publicstringProvinceName{get;set;}
///<summary>
///省份里有多个学校这里用集合保存
///</summary>
publicIList<School>SchoolName{get;set;}
}
}

namespaceMongoCore.Models
{//用于后面添加学校publicSchool(stringschoolName,stringyears){SchoolName=schoolName;Years=years;}
publicclassSchool
{
publicstringSchoolName{get;set;}
publicstringYears{get;set;}
}
}

创建上下文类,连接MongoDB

namespaceMongoCore.Models
{
publicclassProvinceContext
{
//定义数据库
privatereadonlyIMongoDatabase_database=null;
publicProvinceContext()
{
//连接服务器名称mongo的默认端口27017
varclient=newMongoClient("mongodb://.......:27017");
if(client!=null)
//连接数据库
_database=client.GetDatabase("数据库名");
}

publicIMongoCollection<Province>Province
{
get
{
return_database.GetCollection<Province>("Province");
}
}
}
}

创建控制器

privatereadonlyProvinceContext_context=newProvinceContext();
publicasyncTask<IActionResult>Index()
{
varlist=await_context.Province.Find(_=>true).ToListAsync();
returnView(list);
}

视图

@modelList<MongoCore.Models.Province>
@{
ViewData["Title"]="Index";
}
<h3>Index</h3>
<h3>Index</h3>
<aasp-action="Create"><inputtype="button"value="新建"class="btnbtn-default"/></a>
<tableclass="table">
<tr>
<th>省份ID</th>
<th>省份名称</th>
<th>操作</th>
</tr>
@foreach(variteminModel)
{
<tr>
<td>
@Html.DisplayFor(modelItem=>item.ProvinceID)
</td>
<td>
@Html.DisplayFor(modelItem=>item.ProvinceName)
</td>
<td>
<aasp-action="Insert"asp-route-ProvinceID="@item.ProvinceID">新增</a>&nbsp;&nbsp;
<aasp-action="Detail"asp-route-ProvinceID="@item.ProvinceID">详情</a>&nbsp;&nbsp;
<aasp-action="Delete"asp-route-ProvinceID="@item.ProvinceID">删除</a>&nbsp;&nbsp;
</td>
</tr>
}
</table>

运行的时候修改配置在Startup.cs里

怎么在.net Core项目中连接MongoDB数据库

运行效果是这样的,现在还没有数据,

怎么在.net Core项目中连接MongoDB数据库

点击新建按钮添加省份,这里我添加了湖北省

怎么在.net Core项目中连接MongoDB数据库

添加省份代码如下:后端

publicIActionResultCreate()
{
returnView();
}
[HttpPost]
[ValidateAntiForgeryToken]
publicasyncTask<ActionResult>Create(Provinceitem)
{
try
{
//初始化学校类型数据
item.SchoolName=newList<School>();
await_context.Province.InsertOneAsync(item);
returnRedirectToAction(nameof(Index));
}
catch
{
returnView();
}
}

视图:

@modelMongoCore.Models.Province
@{
ViewData["Title"]="Create";
}

<h3>Create</h3>
<divclass="row">
<divclass="col-md-4">
<formasp-action="Create">
<divasp-validation-summary="ModelOnly"class="text-danger"></div>
<divclass="form-group">
<labelclass="control-label">省份ID</label>
<inputasp-for="ProvinceID"class="form-control"/>
</div>
<divclass="form-group">
<labelclass="control-label">省份名称</label>
<inputasp-for="ProvinceName"class="form-control"/>
</div>
<divclass="form-group">
<inputtype="submit"value="保存"class="btnbtn-default"/>
</div>
</form>
</div>
</div>

接下来就是添加省份下面的学校了

publicasyncTask<IActionResult>Insert(intProvinceID)
{
varnum=await_context.Province.Find(p=>p.ProvinceID==ProvinceID).SingleOrDefaultAsync();
returnView(num);
}

[HttpPost]
[ValidateAntiForgeryToken]
publicasyncTask<IActionResult>Insert(intProvinceID,stringYears,stringSchoolName)
{
varitem=await_context.Province.Find(p=>p.ProvinceID==ProvinceID).SingleOrDefaultAsync();
Schoolsl=newSchool(SchoolName,Years);
//添加学校
item.SchoolName.Add(sl);
//更新
ReplaceOneResultactionResult
=await_context.Province
.ReplaceOneAsync(n=>n.ProvinceID.Equals(ProvinceID)
,item
,newUpdateOptions{IsUpsert=true});
returnRedirectToAction(nameof(Index));
}

视图:

@modelMongoCore.Models.Province
@{
ViewData["Title"]="Insert";
}
<h3>新增</h3>
<divclass="row">
<divclass="col-md-4">
<formasp-action="Insert">
<divasp-validation-summary="ModelOnly"class="text-danger"></div>
<inputtype="hidden"asp-for="ProvinceID"/>
<divclass="form-group">
<labelclass="control-label">学校名称</label>
<inputname="SchoolName"class="form-control"/>
</div>
<divclass="form-group">
<labelclass="control-label">成立年份</label>
<inputname="Years"class="form-control"/>
</div>
<divclass="form-group">
<inputtype="submit"value="保存"class="btnbtn-default"/>
</div>
</form>
</div>
</div>

然后添加学校,我添加了两所学校,在MongoDB里可以看到数据

怎么在.net Core项目中连接MongoDB数据库

上述就是小编为大家分享的怎么在.net Core项目中连接MongoDB数据库了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2021-03-13 15:37:14
收藏
分享
海报
0 条评论
165
上一篇:css中实现元素垂直居中的方法 下一篇:如何在Visual Studio中连接SQLServer数据库
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码