示例#1
0
        public static IList ExecuteDb <T, TResult>(Db.OeEntitySetAdapterCollection entitySetAdapters, DbContext dataContext, Expression <Func <IQueryable <T>, TResult> > expression)
        {
            var        visitor = new QueryVisitor <T>(entitySetAdapters, dataContext);
            Expression call    = visitor.Visit(expression.Body);

            return(new[] { visitor.Query.Provider.Execute <TResult>(call) });
        }
 public DynamicDataAdapter(DynamicTypeDefinitionManager typeDefinitionManager)
     : base(null, null, typeDefinitionManager.OperationAdapter)
 {
     TypeDefinitionManager           = typeDefinitionManager;
     _dynamicEntitySetAdapters       = CreateEntitySetAdapters(typeDefinitionManager);
     base.IsDatabaseNullHighestValue = typeDefinitionManager.IsDatabaseNullHighestValue;
 }
示例#3
0
        public DynamicDataAdapter(DynamicTypeDefinitionManager typeDefinitionManager)
            : base(null, null, typeDefinitionManager.OperationAdapter)
        {
            TypeDefinitionManager     = typeDefinitionManager;
            _dynamicEntitySetAdapters = CreateEntitySetAdapters(typeDefinitionManager);

            _expressionVisitor = typeDefinitionManager.ExpressionVisitor;
            base.IsDatabaseNullHighestValue = typeDefinitionManager.IsDatabaseNullHighestValue;
            base.IsCaseSensitive            = typeDefinitionManager.IsCaseSensitive;
        }
示例#4
0
        public static Db.OeEntitySetAdapter FindEntitySetAdapterByTypeName(Db.OeEntitySetAdapterCollection entitySetAdapters, String typeName)
        {
            foreach (Db.OeEntitySetAdapter entitySetAdapter in entitySetAdapters)
            {
                if (String.Compare(entitySetAdapter.EntityType.FullName, typeName, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    return(entitySetAdapter);
                }
            }

            throw new InvalidOperationException("EntitySetAdapter not found for type name " + typeName);
        }
示例#5
0
        public static Db.OeEntitySetAdapter FindEntitySetAdapterByClrType(Db.OeEntitySetAdapterCollection entitySetAdapters, Type entityType)
        {
            foreach (Db.OeEntitySetAdapter entitySetAdapter in entitySetAdapters)
            {
                if (entitySetAdapter.EntityType.FullName == entityType.FullName) //linq2db test use different data context
                {
                    return(entitySetAdapter);
                }
            }

            throw new InvalidOperationException("EntitySetAdapter not found for type " + entityType.FullName);
        }
示例#6
0
        public static IList ExecuteDb <T, TResult>(Db.OeEntitySetAdapterCollection entitySetAdapters, DbContext dataContext,
                                                   Expression <Func <IQueryable <T>, IQueryable <TResult> > > expression, out IReadOnlyList <IncludeVisitor.Include> includes)
        {
            var        visitor = new QueryVisitor <T>(entitySetAdapters, dataContext);
            Expression call    = visitor.Visit(expression.Body);

            var includeVisitor = new IncludeVisitor();

            call     = includeVisitor.Visit(call);
            includes = includeVisitor.Includes;

            IList fromDb = visitor.Query.Provider.CreateQuery <TResult>(call).ToList();

            if (typeof(TResult) == typeof(Object))
            {
                fromDb = ToOpenType(fromDb);
            }

            return(fromDb);
        }
示例#7
0
 public QueryVisitor(Db.OeEntitySetAdapterCollection entitySetAdapters, Object dataContext)
 {
     _entitySetAdapters = entitySetAdapters;
     _dataContext       = dataContext;
 }
 public DynamicDataAdapter(DynamicTypeDefinitionManager typeDefinitionManager)
 {
     _typeDefinitionManager    = typeDefinitionManager;
     _dynamicEntitySetAdapters = CreateEntitySetAdapters(typeDefinitionManager);
 }
 public OeEfCoreOperationAdapter(Type dataContextType, Db.OeEntitySetAdapterCollection entitySetAdapters)
     : base(dataContextType)
 {
     _entitySetAdapters = entitySetAdapters;
 }
示例#10
0
 public static Expression TranslateSource(Db.OeEntitySetAdapterCollection entitySetAdapters, Object dataContext, Expression expression)
 {
     return(new SourceVisitor(entitySetAdapters, dataContext).Visit(expression));
 }
示例#11
0
 public DbFixtureInitDb(bool clear = false)
 {
     _clear             = clear;
     _entitySetAdapters = new EfCore.OeEfCoreDataAdapter <OrderContext>().EntitySetAdapters;
 }
 public IList Execute(Db.OeEntitySetAdapterCollection entitySetAdapters, DbContext dbContext)
 {
     return(TestHelper.ExecuteDb(entitySetAdapters, dbContext, _expression));
 }