我正在为我的项目使用实体框架包装器。如果我只使用一个表进行CRUD操作,它工作正常,但不幸的是我无法连接两个表。
我看到有人建议包括我也无法使用。
我也有this,但我无法理解。
我正在共享我的BaseRepository类
get(imageView)
请让我知道我需要在BaseRepository中执行哪些更改,以便我可以执行连接。
答案 0 :(得分:1)
好吧......所以,看看你的基础知识库看起来你已经有了东西。我最好的猜测是你只是使用存储库模式感到困惑。因此,您向我们展示了采用类型<T>
的BaseRepository。您的特定存储库是如何创建的?例如,您必须拥有AccountRepository或ContactRepository,它需要在UnitOfWork类中使用类似这样的通用基础存储库:
private IBaseRepository<Account> _accountRepository;
public IBaseRepository<Account> AccountRepository
{
get { return _accountRepository ?? (_accountRepository = new BaseRepository<Account>(_databaseFactory)); }
}
你可以调用如下:
private IBaseRepository<Account> accountRepo { get { return UnitOfWork.AccountRepository; } }
并将其用作accountRepo.Get(),它将为您提供所有帐户的列表。
如果这是您使用存储库的方式,那么您需要为连接做的只是添加另一个实体的存储库:
private IBaseRepository<Contact> contactRepo { get { return UnitOfWork.ContactRepository; } }
并执行以下连接:
return (from c in contactRepo.GetAll()
join a in accountRepo.GetAll() on c.AccountId equals a.AccountId
where a.Name == "Test Account Name"
select c).ToList();
以上内容将为您提供属于该帐户的所有联系人姓名=&#34;测试帐户名称&#34;。
让我知道它是如何为你工作的。