zoukankan      html  css  js  c++  java
  • 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之旅今天是正式开始了

  • 相关阅读:
    平板涂色
    速算游戏_NOI导刊2011提高(04)
    信息学奥赛一本通——配套刷题网站
    求10000以内n的阶乘
    大整数的因子
    计算2的N次方
    大整数加法
    带余除法
    A/B 高精度
    A*B 高静度
  • 原文地址:https://www.cnblogs.com/wuxl360/p/6022352.html
Copyright © 2011-2022 走看看