使用 C# 或 Linq 对 MongoDB 和 SQL 使用相同的语法
Use Same Syntax for MongoDB and SQL with C# or Linq
注意到 MongoDB 有不同的关键字,如 InsertOne、ReplaceOne 等。
Linq(语言集成查询)的一个要点是拥有一种通用语言,人们可以在其中利用依赖注入并在 SQL 或 NoSQL 之间进行交换,而无需大量更改语法。 SQL 使用 .Add() 和 Remove() 。
有没有简单的方法让两者有相似的语法?
SQL:
https://docs.microsoft.com/en-us/ef/core/saving/basic
MongoDB:
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);
}
}
我个人认为来自 Entity Framework 背景的 Mongodb c# 驱动程序有点吓人。
但是,我创建了一个名为 MongoDAL 的抽象层,这使得使用 Mongodb 驱动程序变得非常容易。
它支持注册 ASP.Net 核心依赖注入系统或仅使用静态数据库 class 以完全类型安全的方式对您的任何集合执行操作和编写 LINQ 查询。您也可以使用它轻松创建自己的存储库。也不必处理 ObjectId 或 BsonDocument 类型。
注意到 MongoDB 有不同的关键字,如 InsertOne、ReplaceOne 等。 Linq(语言集成查询)的一个要点是拥有一种通用语言,人们可以在其中利用依赖注入并在 SQL 或 NoSQL 之间进行交换,而无需大量更改语法。 SQL 使用 .Add() 和 Remove() 。
有没有简单的方法让两者有相似的语法?
SQL:
https://docs.microsoft.com/en-us/ef/core/saving/basic
MongoDB:
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);
}
}
我个人认为来自 Entity Framework 背景的 Mongodb c# 驱动程序有点吓人。
但是,我创建了一个名为 MongoDAL 的抽象层,这使得使用 Mongodb 驱动程序变得非常容易。
它支持注册 ASP.Net 核心依赖注入系统或仅使用静态数据库 class 以完全类型安全的方式对您的任何集合执行操作和编写 LINQ 查询。您也可以使用它轻松创建自己的存储库。也不必处理 ObjectId 或 BsonDocument 类型。