在我的控制器中,我按如下方式初始化我的工作单元和存储库模式:
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;
所以,现在一切都已经连通,我对如何继续进行了茫然。
答案 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...");
}