public void WithDatabaseAccessingMEthodCallLoadingVariable(DatabaseEntityVariable <LINQToSQL> dbEntityVariable) { var customerEntityDeclaration = new DatabaseEntityDeclaration <LINQToSQL>("Customer"); var orderEntityDeclaration = new DatabaseEntityDeclaration <LINQToSQL>("Order"); var entityDeclarationsUsedInQuery = new List <DatabaseEntityDeclaration <LINQToSQL> >() { customerEntityDeclaration }; DatabaseQueryVariable databaseQueryVariable = null; var dbQuery = new DatabaseQuery <LINQToSQL>("(from c in dc.Customers where c.Id=1 select c)", entityDeclarationsUsedInQuery, databaseQueryVariable); var dbAccessingMethodCall = new DatabaseAccessingMethodCallStatement <LINQToSQL>(dbQuery, null); var entityDeclarationsLoadedByDbCall = new List <DatabaseEntityDeclaration <LINQToSQL> >() { customerEntityDeclaration, orderEntityDeclaration }; dbAccessingMethodCall.SetLoadedEntityDeclarations(entityDeclarationsLoadedByDbCall); var dbAccessingMethodCallNode = new ORMModelNode(dbAccessingMethodCall); Tree.RootNode.ChildNodes.Add(dbAccessingMethodCallNode); }
public ORMModelTreeGenerator() { var rootMethodDeclaration = new MethodDeclaration("Main", null); var rootNode = new ORMModelNode(rootMethodDeclaration); Tree = new ORMModelTree(rootNode); }
public ORMModelTreeGenerator WithDatabaseEntityVariableAssignedByDatabaseAccessingMethodCall() { dbAccessingMethodCall.SetAssignedVariable(databaseEntityObject); var dbEntityObjectNode = new ORMModelNode(databaseEntityObject); Tree.RootNode.ChildNodes.Add(dbEntityObjectNode); return(this); }
public ORMModelTreeGenerator WithCallToRelatedEntityOnDatabaseEntityVariableAssignedByDatabaseAccessingMethodCall() { var databaseEntityRelatedObjectCall = new DatabaseEntityVariableRelatedEntityCallStatement <LINQToSQL>(databaseEntityObject, null); var databaseEntityRelatedObjectCallNode = new ORMModelNode(databaseEntityRelatedObjectCall); Tree.RootNode.ChildNodes.Add(databaseEntityRelatedObjectCallNode); return(this); }
private void Visit(MethodDeclarationBase model) { if (this.ORMModelTree.RootNode != null) { throw new ArgumentException("There can only be one MethodDeclaration in an ORMModelTree."); } var rootNode = new ORMModelNode(model); this.ORMModelTree = new ORMModelTree(rootNode); SetLastVisitedNode(rootNode); }
public ORMModelTreeGenerator WithEagerLoadingDatabaseAccessingMethodCall() { dbAccessingMethodCall = GetDatabaseAccessingMethodCall(); var entityDeclarationsLoadedByDbCall = new List <DatabaseEntityDeclaration <LINQToSQL> >() { customerEntityDeclaration, orderEntityDeclaration }; dbAccessingMethodCall.SetLoadedEntityDeclarations(entityDeclarationsLoadedByDbCall); var dbAccessingMethodCallNode = new ORMModelNode(dbAccessingMethodCall); Tree.RootNode.ChildNodes.Add(dbAccessingMethodCallNode); return(this); }
public ORMModelTree Extract(MethodDeclarationSyntax methodDeclarationSyntaxNode) { var methodDeclaration = new MethodDeclaration(methodDeclarationSyntaxNode.Identifier.Text, methodDeclarationSyntaxNode.GetCompilationInfo()); this._ORMModelTree = new ORMModelTree(new ORMModelNode(methodDeclaration)); var extractor = new LINQToSQLDatabaseAccessingMethodCallExtractor(null, null, _databaseQueries.ToList(), null, null, null); extractor.Visit(methodDeclarationSyntaxNode); foreach (var dbAccessingMethodCall in extractor.DatabaseAccessingMethodCalls) { var ORMModelNode = new ORMModelNode(dbAccessingMethodCall); _ORMModelTree.RootNode.ChildNodes.Add(ORMModelNode); } return(_ORMModelTree); }
public void Visit(ModelBase model) { if (model is MethodDeclarationBase) { this.Visit(model as MethodDeclarationBase); } else { var node = new ORMModelNode(model); if (_LastVisitedNode is LoopDeclarationBase) { _LastVisitedNode.ChildNodes.Add(node); } else { ORMModelTree.RootNode.ChildNodes.Add(node); _LastVisitedNode = node; } } }
private void SetLastVisitedNode(ORMModelNode node) { _LastVisitedNode = node; }