44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
using PoweredSoft.DbContext.Core;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Data.Entity.Infrastructure;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using System.Text;
|
|
|
|
namespace PoweredSoft.DbContext.EntityFramework
|
|
{
|
|
public class DbQueryService : IDbQueryService
|
|
{
|
|
public DbQueryService(DbQuery dbQuery)
|
|
{
|
|
DbQuery = dbQuery;
|
|
}
|
|
|
|
public Expression Expression => ((IQueryable)DbQuery).Expression;
|
|
|
|
public Type ElementType => ((IQueryable)DbQuery).ElementType;
|
|
|
|
public IQueryProvider Provider => ((IQueryable)DbQuery).Provider;
|
|
|
|
protected DbQuery DbQuery { get; }
|
|
|
|
public IDbQueryService AsNoTracking()
|
|
{
|
|
var efQuery = DbQuery.AsNoTracking();
|
|
var ret = new DbQueryService(efQuery);
|
|
return ret;
|
|
}
|
|
|
|
public IEnumerator GetEnumerator() => ((IQueryable)DbQuery).GetEnumerator();
|
|
|
|
public IDbQueryService Include(string path)
|
|
{
|
|
var efQuery = DbQuery.Include(path);
|
|
var ret = new DbQueryService(efQuery);
|
|
return ret;
|
|
}
|
|
}
|
|
}
|