注意到MongoDB具有不同的关键字,例如InsertOne,ReplaceOne等。Linq(语言集成查询)的重点是拥有一种通用语言,使人们可以利用依赖注入和SQL或NoSQL之间的交换而无需大量更改语法。SQL使用.Add()和Remove()。
有没有简单的方法可以使两者具有相似的语法?
SQL:
https://docs.microsoft.com/zh-cn/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 …Run Code Online (Sandbox Code Playgroud) 我正在阅读有关静态工厂方法的信息。静态工厂方法编码技术仅适用于Java,还是可以适用于C#.Net?似乎更像是Java。
https://dzone.com/articles/constructors-or-static-factory-methods
class Color {
private final int hex;
static Color makeFromRGB(String rgb) {
return new Color(Integer.parseInt(rgb, 16));
}
static Color makeFromPalette(int red, int green, int blue) {
return new Color(red << 16 + green << 8 + blue);
}
static Color makeFromHex(int h) {
return new Color(h);
}
private Color(int h) {
return new Color(h);
}
}
Run Code Online (Sandbox Code Playgroud)