c#开发Mongo笔记第四篇
今天是个伟大的日子,不得不说小苹果的歌词真是深入人心啊。
不过今天伟大并不是因为我种下一颗种子,而是我从今天不再写demo,而是进入项目的正式开发当中,毕竟项目时间有限(想必各位码农也都深有体会吧),边开发边探索吧。
既然是刚刚开始,就先搭了一下系统框架,然后,做了一个登陆功能,和一个登陆日志功能
public class Log
{
public ObjectId Id { get; set; } public string Abstract { get; set; } public string Description { get; set; } public DateTime CreateTime { get; set; } public string IPAddress { get; set; } public string OS { get; set; } public string BrowserVersion { get; set; } public string UserHostName { get; set; } public string RequestUrl { get; set; } public User User { get; set; }
}
经过考虑,我觉得把用户对象当初冗余存在日志表中,当然了用户表还是存在的,只不过是查询日志的时候避免联查带来的不便,存储的结构式这样的。
public class User
{
public ObjectId _id { get; set; }
public string UserName { get; set; } public string Password { get; set; } public Guid CustomID { get; set; }
}
其实这个id写成_id而没有遵循驼峰命名法也是很不规范的,之所以这么写,是因为查询的时候要转换成对象的话必须完全匹配,不然的话会报错,所以不得不写了这么一个奇怪的属性。
要是大家有什么号的建议还希望能够多多指教。
然后就是用户的登陆功能了,用户我打算写一个数据访问层,目前先写了两个方法
public class DALUser
{
public static User GetById(ObjectId id)
{
MongoDatabase db = MongoHelper.GetConnection();
MongoCollection collection = db.GetCollection<User>("User");
var list = collection.FindAllAs<User>();
return list.FirstOrDefault(u => u._id== id);
}
public static User GetByName(string name)
{
MongoDatabase db = MongoHelper.GetConnection();
MongoCollection collection = db.GetCollection<User>("User");
var list = collection.FindAllAs<User>();
return list.FirstOrDefault(u => u.UserName == name);
}
}
登陆的时候就直接先根据名称查出这个用户对象再比较密码,其实和以前访问sqlserver一样了
日志的存储我用了一个通用的方法
public static void Add(object o)
{
MongoDatabase db = GetConnection();
Type type = o.GetType();
MongoCollection collection = db.GetCollection<Type>(type.Name);
collection.Insert(o);
}
所以的对象存储都调用这个函数,其实删,改,查本来也想写通用的函数的,但是没想到好的写法呢,就先分开写,以后再探索吧。
总之,c#操作mongo之旅今天是正式开始了
c#开发Mongo笔记第四篇的更多相关文章
- c#开发Mongo笔记第八篇
到今天为止,Mongo开发的权限管理系统功能就做完了,剩下的就是完善构架,优化结构,只是现在c#操作Mongo的各种操作基本都掌握了 说到权限管理系统,其实再简单不过了,在关系型数据的是时代,我们通常 ...
- c#开发Mongo笔记第六篇
之前写的五篇比较得到了大家的积极反馈,也有个别高手对我写我写出的代码进行了指教. 其中提到的我写的查询方法性能有问题,我想了想,如果mongo不是延时加载的话,那我的查询就真的有问题了,就成了查询出来 ...
- c#开发Mongo笔记第七篇
开发到这里遇到了一些问题,哪到这里想请教一下大家 今天我完成的是菜单功能, public class Menu { public ObjectId _id { get; set; } public i ...
- c#开发Mongo笔记第三篇
今天主要测试了一下查询功能了,当然了主要还是为了让查询可以和我们平时使用的实体对象关联起来,并且 那些BsonDocument和Collection我们操作起来不是太方便的 还是首先定义了一个用户类, ...
- c#开发Mongo笔记第五篇
现在增删查改算是都完成了,但是查询算是有点不完美的,相信现在用juqeryeasyui这一类的插件的人应该也不少吧,这样的话前台展示需要JSON格式的数据, 好在mogno驱动提供toJson()的函 ...
- 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http:/ ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- c#开发Mongo笔记第二篇
写到第二篇不得不说是我之前犯了一个小错误,其实实现子表存储也是很简单的事,先说我想实现什么样的效果吧 就是用户表里有个成绩字段,成绩字段是个子表 其实实现这个功能也很简单,用面向对象的思想很好理解,子 ...
- c#开发Mongo笔记第一篇
现在开发的这个项目要用mongo数据库开发,发现网上的这方面教程还是比较少的,只能边看官方说明边进行开发,再开发过程中写下笔记,也算上是一个总结吧. 我开发使用的是vs2013了,驱动用的是最新的1. ...
随机推荐
- python---sys
简介 sys模块用于提供对python解释器的相关操作 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.modules 返回系统导入的模块字段,key是模块名,value是模块 ...
- 原生js 实现购物车价格和总价 统计
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JAVA_Java中关于supper和this的理解
2015-04-04 Created By BaoXinjian
- xml 解析
例:解析以下片段 <font> <name>Helvetica</name> <size units="pt">36</siz ...
- Python绑定方法,未绑定方法,类方法,实例方法,静态方法
>>> class foo(): clssvar=[1,2] def __init__(self): self.instance=[1,2,3] def hehe(self): pr ...
- (转)SQLServer_T-SQL 语句执行时间的查询
原文地址:http://blog.csdn.net/wangjunhe/article/details/7211974 --利用getdatedeclare @beginTime datetime d ...
- Archlinux 添加无线网络
From: https://wiki.archlinux.org/index.php/Beginners%27_Guide_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%8 ...
- java 获取classpath下文件多种方式
java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...
- linux文件权限表示及用户权限管理
UNIX/Linux下关于文件执行权限的表示和查看想必是最熟悉不过的,然而你是否真正了解用户文件的权限标识和用户的权限呢? 实际上文件权限标识不仅仅只有U, G, O 11 10 9 8 7 6 5 ...
- MyBatis学习总结(五)——实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...