在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
LiteDB 是一个简单、快速和轻量级的嵌入式 .NET 文档数据库。LiteDB .NET 的灵感来自 MongoDB 数据库,其 API 与 MongoDB 的官方 .NET API 非常相似。LiteDB 是一个无服务器数据库,非常适合小型项目和移动应用程序。
这篇文章将为您提供关于在项目中利用 LiteDB 功能的准确指导。我们还介绍了由 IronSoftware 制作的 .NET 库 IronPDF,用于生成和操作 PDF,以及如何将其用于将 LiteDB 数据库内容输出为 PDF 以便查看和共享。
嵌入式数据库: 无需单独的服务器。LiteDB 在您的应用程序进程内运行。
单一数据文件: 您可以在单个文件数据库中存储所有数据,简化部署和备份。
BSON 格式: 使用 BSON 格式进行存储,确保快速的读写操作。
LINQ 支持: 完全支持 LINQ 查询,使 .NET 开发人员使用更直观。
ACID 事务: 支持 ACID 事务,确保数据完整性。
在 Visual Studio 中打开您的项目。然后,在解决方案资源管理器中右键点击您的项目,选择“管理 NuGet 包”。搜索 LiteDB 并安装它,以便轻松地将此数据库解决方案集成到您的项目中。
另外,您也可以使用包管理器控制台来安装它。在 NuGet 包管理器控制台中安装 LiteDB,请使用以下命令:
Install-Package LiteDB
Install-Package LiteDB
IRON VB CONVERTER ERROR developers@ironsoftware.com
安装后,您可以在应用程序中开始使用LiteDB。让我们通过一些例子来说明它的使用。
首先,让我们创建一个简单的 Product 类来表示我们的数据:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
接下来,我们将创建一个数据库并插入一些产品:
using LiteDB;
using System;
class Program
{
static void Main()
{
using (var db = new LiteDatabase(@"MyData.db"))
{
var products = db.GetCollection<Product>("products");
var productList = new[]
{
new Product { Id = 201, Name = "Apple", Price = 0.99m },
new Product { Id = 202, Name = "Banana", Price = 0.59m },
new Product { Id = 203, Name = "Orange", Price = 0.79m },
new Product { Id = 204, Name = "Grape", Price = 2.99m },
new Product { Id = 205, Name = "Watermelon", Price = 4.99m }
};
foreach (var product in productList)
{
products.Insert(product);
}
Console.WriteLine("Product inserted successfully.");
}
}
}
using LiteDB;
using System;
class Program
{
static void Main()
{
using (var db = new LiteDatabase(@"MyData.db"))
{
var products = db.GetCollection<Product>("products");
var productList = new[]
{
new Product { Id = 201, Name = "Apple", Price = 0.99m },
new Product { Id = 202, Name = "Banana", Price = 0.59m },
new Product { Id = 203, Name = "Orange", Price = 0.79m },
new Product { Id = 204, Name = "Grape", Price = 2.99m },
new Product { Id = 205, Name = "Watermelon", Price = 4.99m }
};
foreach (var product in productList)
{
products.Insert(product);
}
Console.WriteLine("Product inserted successfully.");
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
代码初始化与名为 "MyData.db" 的 LiteDB 数据库的连接,并检索名为 "products" 的集合。然后创建一个包含各种属性(如 ID、Name 和 Price)的 Product 对象数组。数组中的每个产品都被插入到数据库中的 "products" 集合中。在成功插入所有产品后,它会在控制台上打印确认消息。
输出如下:
想象一下,您正在开发一个管理用户账户的移动应用程序。每个用户都有一个包含他们姓名、电子邮件地址和偏好的个人资料。 (存储为JSON对象)以及一个喜欢的项目列表。以下是 LiteDb.NET 如何简化您的数据存储:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public List<string> FavoriteItems { get; set; }
}
public class UserManager
{
private LiteDatabase _db;
public UserManager(string connectionString)
{
_db = new LiteDatabase(connectionString);
}
public void AddUser(User user)
{
var usersCollection = _db.GetCollection<User>("users");
usersCollection.Insert(user);
}
public User GetUser(int id)
{
var usersCollection = _db.GetCollection<User>("users");
return usersCollection.FindById(id);
}
public void UpdateUser(User user)
{
var usersCollection = _db.GetCollection<User>("users");
usersCollection.Update(user);
}
public void DeleteUser(int id)
{
var usersCollection = _db.GetCollection<User>("users");
usersCollection.Delete(id);
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public List<string> FavoriteItems { get; set; }
}
public class UserManager
{
private LiteDatabase _db;
public UserManager(string connectionString)
{
_db = new LiteDatabase(connectionString);
}
public void AddUser(User user)
{
var usersCollection = _db.GetCollection<User>("users");
usersCollection.Insert(user);
}
public User GetUser(int id)
{
var usersCollection = _db.GetCollection<User>("users");
return usersCollection.FindById(id);
}
public void UpdateUser(User user)
{
var usersCollection = _db.GetCollection<User>("users");
usersCollection.Update(user);
}
public void DeleteUser(int id)
{
var usersCollection = _db.GetCollection<User>("users");
usersCollection.Delete(id);
}
}
Public Class User
Public Property Id() As Integer
Public Property Name() As String
Public Property FavoriteItems() As List(Of String)
End Class
Public Class UserManager
Private _db As LiteDatabase
Public Sub New(ByVal connectionString As String)
_db = New LiteDatabase(connectionString)
End Sub
Public Sub AddUser(ByVal user As User)
Dim usersCollection = _db.GetCollection(Of User)("users")
usersCollection.Insert(user)
End Sub
Public Function GetUser(ByVal id As Integer) As User
Dim usersCollection = _db.GetCollection(Of User)("users")
Return usersCollection.FindById(id)
End Function
Public Sub UpdateUser(ByVal user As User)
Dim usersCollection = _db.GetCollection(Of User)("users")
usersCollection.Update(user)
End Sub
Public Sub DeleteUser(ByVal id As Integer)
Dim usersCollection = _db.GetCollection(Of User)("users")
usersCollection.Delete(id)
End Sub
End Class
这个代码定义了一个 User 类来表示用户数据以及一个 UserManager 类来管理 LiteDb.NET 数据库中的用户操作。
using LiteDB;
public class User
{
[BsonId]
public string Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public Dictionary<string, string> Preferences { get; set; }
public List<string> FavoriteItems { get; set; }
}
public class UserManager
{
private readonly LiteDatabase db;
public UserManager(string connectionString)
{
db = new LiteDatabase(connectionString);
}
public void SaveUser(User user)
{
var collection = db.GetCollection<User>("users");
collection.Insert(user);
}
public User GetUser(string userId)
{
var collection = db.GetCollection<User>("users");
return collection.FindById(userId);
}
public void UpdateUser(User user)
{
var collection = db.GetCollection<User>("users");
collection.Update(user);
}
public void DeleteUser(string userId)
{
var collection = db.GetCollection<User>("users");
collection.Delete(userId);
}
}
using LiteDB;
public class User
{
[BsonId]
public string Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public Dictionary<string, string> Preferences { get; set; }
public List<string> FavoriteItems { get; set; }
}
public class UserManager
{
private readonly LiteDatabase db;
public UserManager(string connectionString)
{
db = new LiteDatabase(connectionString);
}
public void SaveUser(User user)
{
var collection = db.GetCollection<User>("users");
collection.Insert(user);
}
public User GetUser(string userId)
{
var collection = db.GetCollection<User>("users");
return collection.FindById(userId);
}
public void UpdateUser(User user)
{
var collection = db.GetCollection<User>("users");
collection.Update(user);
}
public void DeleteUser(string userId)
{
var collection = db.GetCollection<User>("users");
collection.Delete(userId);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
该实现有效利用了 LiteDb.NET 的功能来进行用户数据管理。User 类存储用户信息,而 UserManager 类提供了在数据库中保存、检索、更新和删除用户的方法。
LiteDB 非常适合没有用户并发需求的中小型应用程序。例如,它非常适合在个人控制台应用程序中快速简单地存储数据。完全用 C# 开发,它体积轻巧,占用不到 450KB,不依赖外部依赖项。
一些更多的要点,列在他们的GitHub 页面1. 无服务器 NoSQL 文档存储
简单的 API,类似 MongoDB
线程安全
完全用C#编写,LiteDB兼容.NET 4.5,NETStandard 1.3/2.0,打包成一个小于450KB的单个DLL文件。
带完整事务支持的ACID
使用DES的数据文件加密 (AES) 密码学
您可以轻松映射您的普通旧CLR对象 (POCO) 将类转换为BsonDocument,可以使用属性或LiteDB提供的流式映射器API。
存储文件和流数据 (如MongoDB中的GridFS)
索引文档字段以实现快速搜索
对查询的LINQ支持
类似SQL的命令用于访问/转换数据 LiteDB Studio – 方便的数据访问界面
IronPDF,首屈一指的C# PDF库,实现了无缝 创建,编辑和 操控 在.NET项目中处理PDF。它提供了一个全面的API,用于以下任务: HTML 转 PDF 转换、动态PDF生成和数据提取。利用.NET Chromium引擎,确保HTML准确渲染为PDF文件,满足.NET Core、.NET Standard和.NET Framework的各种项目需求。IronPDF确保从HTML内容生成PDF的精度、简便性和效率,支持Web、桌面和控制台应用程序。
要在项目中启动IronPDF,请通过Visual Studio中的NuGet包管理器安装该库。然后,只需按照以下简单步骤操作:
或者,您也可以在Visual Studio中使用包管理器控制台,通过执行以下命令来安装该库:
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
以下是一个简单的代码示例,展示了如何使用IronPDF从HTML内容生成PDF,使用'using'语句确保资源的正确释放。在这里,我们结合了LiteDB和IronPDF的功能,展示了如何将LiteDB中的数据输出为PDF以供查看:
using DemoLiteDB1;
using LiteDB;
using System.Text;
class Program
{
static void Main()
{
using (var db = new LiteDatabase(@"MyData.db"))
{
var products = db.GetCollection<Product>("products");
var productList = new[]
{
new Product { Id = 101, Name = "Apple", Price = 0.99m },
new Product { Id = 102, Name = "Banana", Price = 0.59m },
new Product { Id = 103, Name = "Orange", Price = 0.79m },
new Product { Id = 104, Name = "Grape", Price = 2.99m },
new Product { Id = 105, Name = "Watermelon", Price = 4.99m }
};
foreach (var product in productList)
{
products.Insert(product);
}
Console.WriteLine("Product inserted successfully.");
// Fetch all products from the database
var allProducts = GetAllProducts(db);
// Generate HTML content from the product list
string htmlContent = GenerateHtml(allProducts);
// Generate the PDF from the HTML content
GeneratePDF(htmlContent);
Console.WriteLine("PDF generated successfully.");
}
}
public static List<Product> GetAllProducts(LiteDatabase db)
{
var products = db.GetCollection<Product>("products");
return products.FindAll().ToList();
}
public static void GeneratePDF(string data)
{
IronPdf.License.LicenseKey = "Your-License-Key";
Console.WriteLine("PDF Generating Started...");
var renderer = new ChromePdfRenderer();
Console.WriteLine("PDF Processing ....");
var pdf = renderer.RenderHtmlAsPdf(data);
string filePath = "Data.pdf";
pdf.SaveAs(filePath);
Console.WriteLine($"PDF Generation Completed, File Saved as {filePath}");
}
public static string GenerateHtml(List<Product> products)
{
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<html><head><style>table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid black; padding: 8px; text-align: left; }</style></head><body>");
htmlBuilder.Append("<h1>Product List</h1>");
htmlBuilder.Append("<table><tr><th>ID</th><th>Name</th><th>Price</th></tr>");
foreach (var product in products)
{
htmlBuilder.Append($"<tr><td>{product.Id}</td><td>{product.Name}</td><td>{product.Price:C}</td></tr>");
}
htmlBuilder.Append("</table></body></html>");
return htmlBuilder.ToString();
}
}
using DemoLiteDB1;
using LiteDB;
using System.Text;
class Program
{
static void Main()
{
using (var db = new LiteDatabase(@"MyData.db"))
{
var products = db.GetCollection<Product>("products");
var productList = new[]
{
new Product { Id = 101, Name = "Apple", Price = 0.99m },
new Product { Id = 102, Name = "Banana", Price = 0.59m },
new Product { Id = 103, Name = "Orange", Price = 0.79m },
new Product { Id = 104, Name = "Grape", Price = 2.99m },
new Product { Id = 105, Name = "Watermelon", Price = 4.99m }
};
foreach (var product in productList)
{
products.Insert(product);
}
Console.WriteLine("Product inserted successfully.");
// Fetch all products from the database
var allProducts = GetAllProducts(db);
// Generate HTML content from the product list
string htmlContent = GenerateHtml(allProducts);
// Generate the PDF from the HTML content
GeneratePDF(htmlContent);
Console.WriteLine("PDF generated successfully.");
}
}
public static List<Product> GetAllProducts(LiteDatabase db)
{
var products = db.GetCollection<Product>("products");
return products.FindAll().ToList();
}
public static void GeneratePDF(string data)
{
IronPdf.License.LicenseKey = "Your-License-Key";
Console.WriteLine("PDF Generating Started...");
var renderer = new ChromePdfRenderer();
Console.WriteLine("PDF Processing ....");
var pdf = renderer.RenderHtmlAsPdf(data);
string filePath = "Data.pdf";
pdf.SaveAs(filePath);
Console.WriteLine($"PDF Generation Completed, File Saved as {filePath}");
}
public static string GenerateHtml(List<Product> products)
{
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<html><head><style>table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid black; padding: 8px; text-align: left; }</style></head><body>");
htmlBuilder.Append("<h1>Product List</h1>");
htmlBuilder.Append("<table><tr><th>ID</th><th>Name</th><th>Price</th></tr>");
foreach (var product in products)
{
htmlBuilder.Append($"<tr><td>{product.Id}</td><td>{product.Name}</td><td>{product.Price:C}</td></tr>");
}
htmlBuilder.Append("</table></body></html>");
return htmlBuilder.ToString();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
代码连接到一个LiteDB数据库,添加一个产品列表,检索所有产品,并生成产品列表的HTML表示形式。然后使用IronPDF库将这个HTML内容创建为PDF文件。该过程包括添加产品、获取产品、将产品列表转换为HTML以及生成PDF的方法。
LiteDB为C#开发者提供了一种轻量级、无服务器的嵌入式文档数据库解决方案,非常适合小型项目和移动应用程序,具有类似MongoDB的API、嵌入式数据库和跨平台兼容性。
同时, IronPDF 作为一款顶级的C# PDF库,IronPDF凭借其HTML到PDF转换和NuGet集成,简化了.NET项目中的PDF生成和操作。LiteDB和IronPDF都为开发人员提供了有价值的工具,其中LiteDB在数据库管理方面表现出色,IronPDF则在处理PDF方面表现卓越。
IronPDF提供 免费试用 以解锁其在PDF生成和操作中的全部潜力。