怎么在.net Core项目中连接MongoDB数据库
这期内容当中小编将会给大家带来有关怎么在.net Core项目中连接MongoDB数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
方法如下:
连接MongoDB首先要通过Nuget添加一个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> <aasp-action="Detail"asp-route-ProvinceID="@item.ProvinceID">详情</a> <aasp-action="Delete"asp-route-ProvinceID="@item.ProvinceID">删除</a> </td> </tr> } </table>
运行的时候修改配置在Startup.cs里
运行效果是这样的,现在还没有数据,
点击新建按钮添加省份,这里我添加了湖北省
添加省份代码如下:后端
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数据库了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
ASP.NET怎么实现登出系统并清除Cookie
-
CentOS下怎么实现Mono和Asp.net
CentOS下怎么实现Mono和Asp.net这篇文章主要介绍“C...
-
ASP.NET的Core AD域登录过程怎么实现
ASP.NET的Core AD域登录过程怎么实现本文小编为大家详细...
-
ASP.NET MVC中两个配置文件的作用是什么
-
ASP.NET MVC过滤器执行顺序是什么
-
ASP.NET Core Zero模块系统的示例分析
ASP.NET Core Zero模块系统的示例分析这篇文章主要为...
-
asp.net多级分类统计列表怎么实现
asp.net多级分类统计列表怎么实现本篇内容介绍了“asp.ne...
-
C#怎么用ASP.NET Core开发学生管理系统
-
ASP.net中aspx与cs函数怎么实现互调
ASP.net中aspx与cs函数怎么实现互调,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇...
-
ASP.NET中怎么优化站点构建托管资源
这篇文章将为大家详细讲解有关ASP.NET中怎么优化站点构建托管资源,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完...