上帝大脸 发表于 2015-7-10 07:31:05

MongoDB存储泛型List集合

protected virtual MongoConfigurationBuilder GetConfiguration()
      {
            var builder = new MongoConfigurationBuilder();
            builder.ReadConnectionStringFromAppSettings("tests");
            return builder;
      }
      //数据映射类(key,value)
      class ListInfo
      {
            public int key { get; set; }
            public object value { get; set; }
      }
      static void Main(string[] args)
      {
            var config = new MongoConfigurationBuilder();
            // COMMENT OUT FROM HERE
            config.Mapping(mapping =>
            {
                mapping.DefaultProfile(profile =>
                {
                  profile.SubClassesAre(t => t.IsSubclassOf(typeof(ListInfo)));
                });
                mapping.Map();
            });
            config.ConnectionString("Server=127.0.0.1");
            using (Mongo mongo = new Mongo(config.BuildConfiguration()))
            {
                mongo.Disconnect();
                mongo.Connect();
                try
                {
                  var db = mongo.GetDatabase("TestDb");
                  var collection = db.GetCollection();
                  //添加信息 需要就可以打开注释
                  ListInfo list = BindVendor();
                  collection.Save(list);
                  var coll = db.GetCollection("ListInfo");
                  var info = coll.Find(new Document().Add("key", 7888)).Documents.ToList();
                  string showinfo = "";
                  foreach (Document item in info)
                  {
                        var listd = item.Values.ToList();
                        showinfo += "编号:" + listd;
                        List items = (listd as List);
                        foreach (var item1 in items)
                        {
                            var item2 = item1.ToList().Value;
                            showinfo += "名称:" + item2;
                        }
                  }
                  Console.WriteLine(showinfo);
                }
                catch { }
            }
            Console.ReadKey();
      }
      #region 集合信息
      #region 添加信息到结合
      private static ListInfo BindVendor()
      {
            vendor square = new vendor()
            {
                vendorid = 2,
                vendorname = "西郊汽配城",
                itemid = DateTime.Now.Second
            };
            List list = new List();
            list.Add(square);
            ListInfo listinfo = new ListInfo()
            {
                key = 7888,
                value = list
            };
            return listinfo;
      }
      #endregion
      #region 实体类
      class vendor
      {
            public int vendorid { get; set; }
            public string vendorname { get; set; }
            public int itemid { get; set; }
      }
      #endregion
      #endregion
页: [1]
查看完整版本: MongoDB存储泛型List集合