在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
LiteDB是一个简单、快速并且轻量级的嵌入式 .NET 文档数据库。 LiteDB .NET 受到了 MongoDB 数据库的启发,其 API 与 MongoDB 官方 .NET API 非常相似。 LiteDB 是一种无服务器数据库,适合用于小型项目和移动应用程序。
本文将为您提供有关在项目中利用LiteDB功能的准确指导。 我们还介绍了使用IronPDF,这是一款由IronSoftware开发的.NET库,用于生成和操作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"的集合。 然后创建一个包含各种属性的Product对象数组,比如ID、名称和价格。 数组中的每个产品都被插入数据库内的“products”集合。 在成功插入所有产品后,它会在控制台上打印确认消息。
输出为
假设您正在开发一个管理用户账户的移动应用程序。 每个用户都有一个包含其姓名、电子邮件地址和偏好的个人资料。(存储为JSON对象),以及收藏夹列表。 以下是 LiteDb.NET 如何简化您的数据存储:
该代码定义了一个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 页面:
无服务器 NoSQL 文档存储
简单的 API,类似于 MongoDB
线程安全
LiteDB完全使用C#编写,与.NET 4.5、NETStandard 1.3/2.0兼容,打包成一个占用空间不足450KB的单个DLL文件。
ACID 全事务支持
写入失败后的数据恢复(WAL 日志文件)
使用 DES 的数据文件加密(AES)密码学
您可以轻松映射您的传统 CLR 对象(POCO)使用 LiteDB 提供的属性或流畅的映射器 API 将类转换为 BsonDocument。
存储文件和流式数据(如MongoDB中的GridFS)
为快速搜索建立索引文档字段
类似 SQL 的命令用于访问/转换数据
14.LiteDB Studio- 良好的数据访问用户界面
IronPDF,首屈一指的C# PDF库,实现了无缝创建,编辑和操控PDFs在.NET项目中的使用。 它提供了一个全面的 API,用于处理诸如HTML 转 PDF转换、动态 PDF 生成和数据提取。 利用.NET Chromium引擎,确保准确地将HTML渲染为PDF文件,以满足.NET Core、.NET Standard和.NET Framework中各种项目的需求。 IronPDF保证从HTML内容生成PDF时的精确性、简便性和高效性,并支持Web、桌面和控制台应用程序。
要在项目中启动IronPDF,请通过Visual Studio内的NuGet包管理器安装该库。 然后只需遵循以下简单步骤:
打开 Visual Studio,然后导航到解决方案资源管理器。
右键单击“依赖项”,选择“管理 NuGet 包”选项。
选择“浏览”选项卡并搜索“IronPdf”。
选择 IronPDF 并点击“安装”。
或者,在 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 库,通过其 HTML 到 PDF 转换和 NuGet 集成,简化了在 .NET 项目中生成和操作 PDF 的过程。 LiteDB 和 IronPDF 都为开发人员提供了有价值的工具,LiteDB 擅长于数据库管理,而 IronPDF 擅长于 PDF 处理。
IronPDF 提供免费试用以解锁其在PDF生成和操作中的全部潜力。