请建议在MVC应用程序中执行CRUD操作的最佳/高效方法。 我在我的项目中使用Entity Framework进行数据库访问。
ex:EDMX:SupportContext;
前:
using (SupportContext support =new SupportContext())
{
var=(from t1 in support.table1
from t2 in support.table 2
where t1.id==t2.id
select t1).ToList();
}
代码:
public interface IRepository<T> : IDisposable where T : class
{
IEnumerable<T> Find(Expression<Func<T, bool>> predicate);
void Add(T entity);
void SaveChanges();
}
public class GenericRepository<T> : IRepository<T> where T : class
{
private ObjectContext _context;
private IObjectSet<T> _objectSet;
public GenericRepository(ObjectContext context)
{
_context = context;
_objectSet = _context.CreateObjectSet<T>();
}
public IEnumerable<T> Find(Expression<Func<T, bool>> predicate)
{
return _objectSet.Where<T>(predicate);
}
public void Add(T entity)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
_objectSet.AddObject(entity);
}
public void SaveChanges()
{
_context.SaveChanges();
}
}
这里我将此存储库用于CRUD操作:
var dat1=new GenericRepository<Table1>(new SupportContext());
var dat2=new GenericRepository<Table2>(new SupportContext());
这里我想检索dat1,dat2存储库中的记录,而Id文件是相同的。但我无法以组合方式检索。但是以单一方式做到。
var=dat1.Find(t=>t.id==3).toList();
您能否建议如何从组合存储库中检索数据?还建议哪种方法是访问数据的最佳方式?