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. ...
随机推荐
- SparkContext源码阅读
SparkContext是spark的入口,通过它来连接集群.创建RDD.广播变量等等. class SparkContext(config: SparkConf) extends Logging w ...
- go1.6.2 linux/amd64 的一个bug: gcc: 无法识别的选项‘-no-pie’
如果你的linux是中文版的. 即:执行 # echo $LANG 命令,返回的是 zh_CN.UTF-8 则会出现这个bug, 如果是 en_US.UTF-8 则没有这个问题. 这个bug的一个 ...
- quartus II PIN脚相关之一
FPGA设计中有时候会改变输入输出名称,但是会带来一个问题,在PIN 叫配置页面上会有余留的久名称的Pin脚.如实例中,把 FPGA_CLK_50MHZ 名称修改为 FPGA_CLK,经过编译综合之后 ...
- 57. Jump Game && Jump Game II
Jump Game Given an array of non-negative integers, you are initially positioned at the first index o ...
- iOS开发--一些UITabBarItem属性的设置[转]
1.改变UITabBarItem 字体颜色 [[UITabBarItemappearance]setTitleTextAttributes:[NSDictionary dictionaryWithOb ...
- Linq To DataSet
private static void LinqToDataSet() { string sql = "select * from Advertising"; using (Dat ...
- threadlocal类
1.threadlocal对象为线程提供变量的副本,该副本为线程私有的,其它线程访问不到: 2.变量的副本存储在ThreadLocalMap对象中: 3.使用threadlocal时候,最好先使用in ...
- oneCMDB
OneCMDB开源地址: http://www.oschina.net/p/onecmdb/, 官方网站:http://www.onecmdb.org/wiki/index.php?title=Mai ...
- makefile学习小结
=============2016/08/15================ 上午完成makefile的试验,缩短了代码量,现在make强大,有缺省的变量,能自己推导关系,不需要gcc –MM -M ...
- web测试特别点
1.浏览器的后退按钮 提交表单一条已经成功提交的记录,back后再提交,看系统会如何处理. 检查多次使用back健的情况在有back的地方,back,回到原来的页面,再back,重复几次,看是否会 ...