
Security News
pnpm 10.12 Introduces Global Virtual Store and Expanded Version Catalogs
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.
Vitorm.ElasticSearch
Advanced tools
Vitorm.ElasticSearch: an simple orm for ElasticSearch
source address: https://github.com/Vit-Orm/Vitorm.ElasticSearch
Build | NuGet |
---|---|
This guide will walk you through the steps to set up and use Vitorm.ElasticSearch.
supported features:
feature | method | remarks | |
---|---|---|---|
create table | TryCreateTable | ||
drop table | TryDropTable | ||
--- | --- | --- | --- |
create records | Add AddRange | ||
retrieve records | Query Get | ||
update records | Update UpdateRange ExecuteUpdate | ||
delete records | Delete DeleteRange DeleteByKey DeleteByKeys ExecuteDelete | ||
--- | --- | --- | --- |
change table | ChangeTable | change mapping table from database | |
change database | ChangeDatabase | change database to be connected | |
--- | --- | --- | --- |
collection total count | TotalCount | Collection Total Count without Take and Skip | |
collection total count and list | ToListAndTotalCount | query List and TotalCount in one request | |
Before using Vitorm, install the necessary package:
dotnet add package Vitorm.ElasticSearch
code address: Program_Min.cs
using System;
using System.Linq;
using System.Threading;
namespace App
{
public class Program_Min
{
static void Main2(string[] args)
{
// #1 Init
using var dbContext = new Vitorm.ElasticSearch.DbContext("http://localhost:9200");
dbContext.TryDropTable<User>();
dbContext.TryCreateTable<User>();
dbContext.Add(new User { id = 1, name = "lith" });
Thread.Sleep(2000);
// #2 Query
var user = dbContext.Get<User>(1);
var users = dbContext.Query<User>().Where(u => u.name.Contains("li")).ToList();
}
// Entity Definition
[System.ComponentModel.DataAnnotations.Schema.Table("User")]
public class User
{
[System.ComponentModel.DataAnnotations.Key]
public int id { get; set; }
public string name { get; set; }
public DateTime? birth { get; set; }
public int? fatherId { get; set; }
}
}
}
This example provides a comprehensive guide to utilizing Vitorm for basic and advanced database operations while maintaining lightweight performance.
code address: Program.cs
using System;
using System.Linq;
using Vitorm;
namespace App
{
public class Program
{
static void Main(string[] args)
{
// #1 Configures Vitorm
using var dbContext = new Vitorm.ElasticSearch.DbContext("http://localhost:9200");
// #2 Create Table
dbContext.TryDropTable<User>();
dbContext.TryCreateTable<User>();
// #3 Insert Records
dbContext.Add(new User { id = 1, name = "lith" });
dbContext.AddRange(new[] {
new User { id = 2, name = "lith", fatherId = 1 },
new User { id = 3, name = "lith", fatherId = 1 }
});
// #4 Query Records
{
var user = dbContext.Get<User>(1);
var users = dbContext.Query<User>().Where(u => u.name.Contains("li")).ToList();
var sql = dbContext.Query<User>().Where(u => u.name.Contains("li")).ToExecuteString();
}
// #5 Update Records
dbContext.Update(new User { id = 1, name = "lith1" });
dbContext.UpdateRange(new[] {
new User { id = 2, name = "lith2", fatherId = 1 },
new User { id = 3, name = "lith3", fatherId = 2 }
});
//dbContext.Query<User>().Where(u => u.name.Contains("li"))
// .ExecuteUpdate(u => new User { name = "Lith" + u.id });
// #6 Delete Records
dbContext.Delete<User>(new User { id = 1 });
dbContext.DeleteRange(new[] {
new User { id = 2 },
new User { id = 3 }
});
dbContext.DeleteByKey<User>(1);
dbContext.DeleteByKeys<User, int>(new[] { 1, 2 });
//dbContext.Query<User>().Where(u => u.name.Contains("li"))
// .ExecuteDelete();
// #7 Join Queries
// #8 Transactions
// #9 Database Functions
}
// Entity Definition
[System.ComponentModel.DataAnnotations.Schema.Table("User")]
public class User
{
[System.ComponentModel.DataAnnotations.Key]
public int id { get; set; }
public string name { get; set; }
public DateTime? birth { get; set; }
public int? fatherId { get; set; }
}
}
}
User
table.Vitorm.Data is a static class that allows you to use Vitorm without explicitly creating or disposing of a DbContext.
Before using Vitorm.Data, install the necessary package:
dotnet add package Vitorm.Data
dotnet add package Vitorm.ElasticSearch
// appsettings.json
{
"Vitorm": {
"Data": [
{
"provider": "ElasticSearch",
"namespace": "App",
"connectionString": "http://localhost:9200"
}
]
}
}
After configuring the
appsettings.json
file, you can directly perform queries without any additional configuration or initialization,Vitorm.Data
is that easy to use.
code address: Program_Min.cs
using Vitorm;
namespace App
{
public class Program_Min
{
static void Main2(string[] args)
{
// Query Records
var user = Data.Get<User>(1);
var users = Data.Query<User>().Where(u => u.name.Contains("li")).ToList();
}
// Entity Definition
[System.ComponentModel.DataAnnotations.Schema.Table("User")]
public class User
{
[System.ComponentModel.DataAnnotations.Key]
public int id { get; set; }
public string name { get; set; }
public DateTime? birth { get; set; }
public int? fatherId { get; set; }
}
}
}
code address: Program.cs
using Vitorm;
namespace App
{
public class Program
{
static void Main(string[] args)
{
// #1 No need to init Vitorm.Data
// #2 Create Table
Data.TryDropTable<User>();
Data.TryCreateTable<User>();
// #3 Insert Records
Data.Add(new User { id = 1, name = "lith" });
Data.AddRange(new[] {
new User { id = 2, name = "lith", fatherId = 1 },
new User { id = 3, name = "lith", fatherId = 1 }
});
// #4 Query Records
{
var user = Data.Get<User>(1);
var users = Data.Query<User>().Where(u => u.name.Contains("li")).ToList();
var sql = Data.Query<User>().Where(u => u.name.Contains("li")).ToExecuteString();
}
// #5 Update Records
Data.Update(new User { id = 1, name = "lith1" });
Data.UpdateRange(new[] {
new User { id = 2, name = "lith2", fatherId = 1 },
new User { id = 3, name = "lith3", fatherId = 2 }
});
Data.Query<User>().Where(u => u.name.Contains("li"))
.ExecuteUpdate(u => new User { name = "Lith" + u.id });
// #6 Delete Records
Data.Delete<User>(new User { id = 1, name = "lith1" });
Data.DeleteRange(new[] {
new User { id = 2, name = "lith2", fatherId = 1 },
new User { id = 3, name = "lith3", fatherId = 2 }
});
Data.DeleteByKey<User>(1);
Data.DeleteByKeys<User, int>(new[] { 1, 2 });
Data.Query<User>().Where(u => u.name.Contains("li"))
.ExecuteDelete();
// #7 Join Queries
// #8 Transactions
}
// Entity Definition
[System.ComponentModel.DataAnnotations.Schema.Table("User")]
public class User
{
[System.ComponentModel.DataAnnotations.Key]
public int id { get; set; }
public string name { get; set; }
public DateTime? birth { get; set; }
public int? fatherId { get; set; }
}
}
}
FAQs
orm for ElasticSearch
We found that vitorm.elasticsearch demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.
Security News
Amaro 1.0 lays the groundwork for stable TypeScript support in Node.js, bringing official .ts loading closer to reality.
Research
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.