C# WinForms ve Mono GTK SQL ve XML Gibi DataSource Tipleri Yazılım ve Sistem Güvenliği

Mongo 2.7 ile C# Hazır Yapılarım

Entity Framework gibi ORM araçlarına alışanlar için NoSQL öğrenmede ve kullanmada en zor gelen kısmı kolaylıklardan faydalanamıyor olmamızdır. Görsel bir diagram NoSQL mantığı gereği kurulmamalıdır çünkü ilişkisel bir veritabanı değildir. Bundan sonraki çalışmalarımda kullanmak üzere hazırladığım temel işlemler sınıfıma ait kodları aşağıda paylaşacağım.

 

public string dbName { get; set; }
public string colName { get; set; }
MongoClient client;
IMongoDatabase db;
IMongoCollection<BsonDocument> collection;
public noSQL()
{
    client = new MongoClient();
    db = client.GetDatabase(dbName);
    collection = db.GetCollection<BsonDocument>(colName);
}

public IEnumerable<BsonDocument> findAll()
{
    List<BsonDocument> result = new List<BsonDocument>();
    result = collection.Find(new BsonDocument()).ToList();

    return result;
}

public IEnumerable<BsonDocument> where(BsonDocument filter)
{
    List<BsonDocument> result = new List<BsonDocument>();
    result = collection.Find(filter).ToList();

    return result;
}

public bool insert(BsonDocument doc)
{
    bool result = false;
    try
    {
        collection.InsertOne(doc);
        result = true;
    }
    catch { }
    return result;
}

public async Task<bool> insertAll(IEnumerable<BsonDocument> docs)
{
    try
    {
        await collection.InsertManyAsync(docs);
        return true;
    }
    catch {
        return false;
    }
    
}

public bool update(BsonDocument find, BsonDocument newdoc)
{
    bool result = false;
    try
    {
        collection.UpdateOne(find,newdoc);
        result = true;
    }
    catch { }
    return result;
}

public async Task<bool> updateAll(BsonDocument find, BsonDocument newdoc)
{
    try
    {
        await collection.UpdateManyAsync(find, newdoc);
        return true;
    }
    catch
    {
        return false;
    }
}

public bool delete(BsonDocument find)
{
    bool result = false;
    try
    {
        collection.DeleteOne(find);
        result = true;
    }
    catch { }
    return result;
}

public async Task<bool> deleteAll(BsonDocument find)
{
    try
    {
        await collection.DeleteManyAsync(find);
        return true;
    }
    catch
    {
        return false;
    }
}

 

Kolleksiyonlar arasındaki ilişkilendirmenin modeli şu şekilde oluşturulur.

 

using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace blabla.Models
{
    public class applications
    {
        [BsonId]
        public ObjectId Id { get; set; }
        [BsonElement]
        public string Name { get; set; }
        [BsonElement]
        public DateTime Datex { get; set; }
        [BsonElement]
        public bool isActive { get; set; }
        [BsonElement]
        public ICollection<customers> customers { get; set; } //ilişki
    }

    public class customers
    {
        [BsonId]
        public ObjectId Id { get; set; }

    }
}

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir