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之旅今天是正式开始了

  • 相关阅读:
    MQTT TLS 加密传输
    python多进程并发redis
    各种消息队列的特点
    mqtt异步publish方法
    Numpy API Analysis
    Karma install steps for unit test of Angular JS app
    reinstall bower command
    Simulate getter in JavaScript by valueOf and toString method
    How to: Raise and Consume Events
    获取对象的类型信息 (JavaScript)
  • 原文地址:https://www.cnblogs.com/wuxl360/p/6022352.html
Copyright © 2011-2022 走看看