是否可以将Linqpad与Repository和UnitOfWork模式一起使用?

本文关键字:模式 UnitOfWork 一起 Repository Linqpad 是否 | 更新日期: 2023-09-27 18:06:53

在我的控制器中,我按如下方式初始化我的工作单元和存储库模式:

    private readonly IUnitOfWork _unitOfWork;
    private readonly IRepository<Website> _repository;
    public ProjectsController() { }
    public ProjectsController(IUnitOfWork unitOfWorkAsync,
        IRepository<Website> repository)
    {
        _unitOfWork = unitOfWorkAsync;
        _repository = repository;
    }

我的基本用法如下:

                    var website = _repository
                        .Query()
                        .Select()
                        .Single(u => u.UserId == userId && u.WebsiteGuid == websiteGuid);

我想使用Linqpad来测试查询,并且想知道是否以及如何使用Linqpad来做这件事。

我首先连接到db上下文,然后连接到Repository.dll以避免以下错误:

类型为"Repository.Pattern.DataContext"。定义了IDataContextAsync'在未引用的程序集中。你必须添加一个引用组装的存储库。模式,版本=1.0.0.0,文化=中性,都必须空"。(按下F4)

类型为"Repository.Pattern.DataContext"。IDataContext'定义在未被引用的程序集。你必须添加一个引用组装的存储库。模式,版本=1.0.0.0,文化=中性,都空的。

现在一切都连接起来了,我不知道如何继续。

是否可以将Linqpad与Repository和UnitOfWork模式一起使用?

感谢Sorax的提示,我不再使用c#语句,而是将语言改为c#程序。

我添加了一个参考Repository.Pattern.Ef6'bin'Repository.Pattern.Ef6.dll,并编写了一个基本的工作查询如下:

void Main()
{
     //IRepository<Website> _repository =  ;
    var _repository = new Repository.Pattern.Ef6.Repository<Website>(this);
    var website = _repository
        .Query()
        .Select();
    website.Dump("The Oputput...");
}

我在这里做了一些假设,比如您的存储库依赖于您创建的DBContext连接。所以这应该只是一个初始化实例的问题:

var userId = new Guid("...");
var websiteGuid = new Guid("...");
var _repository = new Repository<Website>(this);
var website = _repository
.Query()
.Select()
.Single(u => u.UserId == userId && u.WebsiteGuid == websiteGuid);
website
.Dump();