LunchPail 2.1.1

dotnet add package LunchPail --version 2.1.1                
NuGet\Install-Package LunchPail -Version 2.1.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="LunchPail" Version="2.1.1" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中,以便引用该包。
paket add LunchPail --version 2.1.1                
#r "nuget: LunchPail, 2.1.1"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此内容复制到交互式工具或脚本源代码中,以引用该包。
// Install LunchPail as a Cake Addin
#addin nuget:?package=LunchPail&version=2.1.1

// Install LunchPail as a Cake Tool
#tool nuget:?package=LunchPail&version=2.1.1                

LunchPail

LunchPail 是针对 ADO.NET 的 .NET Standard 兼容 Unit of Work 实现。UoW 是数据上下文的工作马,因此该项目被称为“午餐盒”,以参考蓝领运动员。

NuGet Version Build Status

入门

  1. 在您的 IoC 容器中注册上下文(以下以 .NET Core 和 SQL Server 为例)
//startup.cs
public void ConfigureServices(IServiceCollection services)
{
  //rest of code...

  //context
  services.AddTransient<IDbConnectionFactory>(options =>
  {
    var builder = new SqlConnectionStringBuilder(Configuration.GetConnectionString("DefaultConnection"));

    return new DbConnectionFactory(() =>
    {
      var conn = new SqlConnection(builder.ConnectionString);

      conn.Open();
      return conn;
    });
  });
  services.AddScoped<IDbContext, DbContext>();

  //repositories (we'll add this later)
}
  1. 创建一个表示您的数据库对象的域类。
public class Product
{
  public int Id { get; set; }
  public string Name { get; set; }
}
  1. 创建一个依赖 IDbContext 的仓储
public interface IProductRepository
{
  Task<Product> Read (int id);
}

public class ProductRepository : DbRepository
{
  public ProductRepository(IDbContext dbContext) : base(dbContext) { }

  public Product Read(int id)
  {
    return Connection.QuerySingleOrDefault<Product>("select * from dbo.Product where Id = @id", new { id }, transaction: Transaction);
  }
}
  1. 将仓储注册到您的 IoC 容器中(以下以 .NET Core 为例)
//startup.cs
public void ConfigureServices(IServiceCollection services)
{
  //repositories
  services.AddScoped<IProductRepository, ProductRepository>();
}
  1. 注册上下文和仓储后,您可以将其注入到控制器或服务层。

请注意,调用 dbContext.Commit() 必须在每次交互完成后发生,以确保正确释放连接。无论是读取还是写入,都适用此规定。

public class ProductService
{
  private readonly IDbContext dbContext;
  private readonly IProductRepository productRepository;

  public ProductService (
    IDbContext dbContext,
    IProductRepository productRepository)
  {
    this.dbContext = dbContext;
    this.productRepository = productRepository;
  }

  public Product Read(int id)
  {
    var product = productRepository.Read(id);
    dbContext.Commit(); // You MUST call commit after all interactions

    return product;
  }
}

Pim Brouwers 在多伦多,安大略省,倾心打造。

产品 兼容和额外的目标框架版本
.NET net5.0已计算。 net5.0-windows已计算。 net6.0已计算。 net6.0-android已计算。 net6.0-ios已计算。 net6.0-maccatalyst已计算。 net6.0-macos已计算。 net6.0-tvos已计算。 net6.0-windows已计算。 net7.0已计算。 net7.0-android已计算。 net7.0-ios已计算。 net7.0-maccatalyst已计算。 net7.0-macos已计算。 net7.0-tvos已计算。 net7.0-windows已计算。 net8.0已计算。 net8.0-android已计算。 net8.0-browser已计算。 net8.0-ios已计算。 net8.0-maccatalyst已计算。 net8.0-macos已计算。 net8.0-tvos已计算。 net8.0-windows已计算。
.NET Core netcoreapp2.0已计算。 netcoreapp2.1已计算。 netcoreapp2.2已计算。 netcoreapp3.0已计算。 netcoreapp3.1已计算。
.NET Standard netstandard2.0兼容。 netstandard2.1已计算。
.NET Framework net461已计算。 net462已计算。 net463已计算。 net47已计算。 net471已计算。 net472已计算。 net48已计算。 net481已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容目标框架
包中包含的目标框架
了解更多关于 目标框架.NET Standard 的信息。
  • .NETStandard 2.0

    • 无依赖项。

NuGet 包包 (1)

显示依赖于 LunchPail 的前 1 个 NuGet 包

下载
LunchPail.Repository

用于 LunchPail 的 .NET Standard 兼容抽象仓库。

GitHub 仓库

此包不被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
2.1.1 1,478 12/15/2022
2.1.0 4,408 11/27/2020
2.0.0 6,277 11/14/2020
1.0.1 4,617 7/27/2018
1.0.0 813 7/26/2018