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

时间:2014-06-05 21:36:15

标签: c# .net repository-pattern unit-of-work linqpad

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

    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以避免以下错误:

  

类型&#39; Repository.Pattern.DataContext.IDataContextAsync&#39;被定义为   在未引用的程序集中。您必须添加引用   assembly&#39; Repository.Pattern,Version = 1.0.0.0,Culture = neutral,   公钥=空&#39 ;. (按F4)

     

类型&#39; Repository.Pattern.DataContext.IDataContext&#39;定义于   未引用的程序集。您必须添加引用   assembly&#39; Repository.Pattern,Version = 1.0.0.0,Culture = neutral,   公钥=空&#39;

所以,现在一切都已经连通,我对如何继续进行了茫然。

2 个答案:

答案 0 :(得分:2)

我在这里做了一些假设,例如您的存储库依赖于您创建的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();

答案 1 :(得分:2)

感谢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...");
}