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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM