【发布时间】:2012-02-26 22:25:51
【问题描述】:
我正在使用通用存储库来开发我自己的带有实体框架的 BLL。Generic Repository 但是所有通用存储库都没有内部连接。乐在下面:
public interface IRepository
{
IQueryable<T> List<T>() where T : class;
T Get<T>(int id) where T : class;
void Create<T>(T entityTOCreate) where T : class;
void Edit<T>(T entityToEdit) where T : class;
void Delete<T>(T entityToDelete) where T : class;
}
如何将上述代码转换为:
public interface IRepository
{
IQueryable<T> List<T>() where T : class;
T Get<T>(int id) where T : class;
void Create<T>(T entityTOCreate) where T : class;
void Edit<T>(T entityToEdit) where T : class;
void Delete<T>(T entityToDelete) where T : class;
void InnerJoin<T>(T entityName, TNew entityName2) where T : class, where TNew : class;
}
或者我认为我们可以像这样使用 Fluent 界面模式:
public List<MyWorker> ListByID( int ID)
{
using (var Ctx = new DomainRepository<Worker>(new ProposalsEntities()))
return Ctx.Find<Worker>(q => q.ID== ID).ToList().InnerJoin(XEntity,x=>x.ID=q.ID).InnerJoin(YEntity,y=>y.ID=q.ID);
}
Yuo 可以给出另一个建议来解决这个奇妙的问题。我如何在通用存储库中编写以上加入代码?
【问题讨论】:
-
您应该返回并接受之前问题的正确答案。 50% 太糟糕了,特别是考虑到我检查的前几个问题的答案客观正确(甚至在 cmets 中你自己也承认)。
-
如果答案是正确的,我会检查它!不要涉及没有答案或建议的问题。
标签: c# .net design-patterns c#-4.0 fluent-interface