使用C#或Linq实现MongoDB和SQL的相同语法

7
我可以为您翻译。这段内容讲述了MongoDB中不同的关键字,如InsertOne、ReplaceOne等,以及Linq(语言集成查询)的一个重点是使用通用语言,使人们可以利用依赖注入并在SQL或NoSQL之间进行切换而不会大幅更改语法。 SQL使用.Add()和.Remove()。
有没有一种简单的方法使两者具有类似的语法? SQL:

https://learn.microsoft.com/en-us/ef/core/saving/basic

MongoDB:

https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-mongo-app?view=aspnetcore-2.2&tabs=visual-studio

https://docs.mongodb.com/manual/reference/method/db.collection.insertOne/

public BookService(IConfiguration config)
    {
        var client = new MongoClient(config.GetConnectionString("BookstoreDb"));
        var database = client.GetDatabase("BookstoreDb");
        _books = database.GetCollection<Book>("Books");
    }

    public List<Book> Get()
    {
        return _books.Find(book => true).ToList();
    }

    public Book Get(string id)
    {
        return _books.Find<Book>(book => book.Id == id).FirstOrDefault();
    }

    public Book Create(Book book)
    {
        _books.InsertOne(book);
        return book;
    }

    public void Update(string id, Book bookIn)
    {
        _books.ReplaceOne(book => book.Id == id, bookIn);
    }

    public void Remove(Book bookIn)
    {
        _books.DeleteOne(book => book.Id == bookIn.Id);
    }

    public void Remove(string id)
    {
        _books.DeleteOne(book => book.Id == id);
    }
}
1个回答

1
我个人从Entity Framework背景出发,认为Mongodb c#驱动程序有些令人望而生畏。
然而,我创建了一个抽象层MongoDAL,使得使用Mongodb驱动程序变得非常容易。
它支持在ASP.Net Core依赖注入系统中注册,或者只需使用静态DB类以完全类型安全的方式对任何集合执行操作和编写LINQ查询。您也可以轻松地使用它创建自己的存储库。无需处理ObjectId或BsonDocument类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接