private Entity DefineSubmissionWorkflow(SchemaSpecification dbo, Entity session, Entity conference) { var submission = dbo.CreateEntity("Submission", table => { var sessionFk = table.CreateForeignKey(session); var conferenceFk = table.CreateForeignKey(conference); var timestamp = table.CreateDateTime2Column("Timestamp"); table.CreateUniqueIndex(sessionFk.Column, conferenceFk.Column, timestamp); }); dbo.CreateEntity("SubmissionWithdrawl", table => { var fk = table.CreateForeignKey(submission); table.CreateUniqueIndex(fk.Column); }); var acceptance = dbo.CreateEntity("Acceptance", table => { var fk = table.CreateForeignKey(submission); var timestamp = table.CreateDateTime2Column("Timestamp"); table.CreateUniqueIndex(fk.Column, timestamp); }); dbo.CreateEntity("AcceptanceWithdrawl", table => { var fk = table.CreateForeignKey(acceptance); table.CreateUniqueIndex(fk.Column); }); return(acceptance); }
private Entity DefineSession(SchemaSpecification dbo, Entity speaker) { var session = dbo.CreateEntity("Session", table => { var fk = table.CreateForeignKey(speaker); var timestamp = table.CreateDateTime2Column("Timestamp"); table.CreateUniqueIndex(fk.Column, timestamp); }); dbo.CreateMutableProperty(session, "Title", table => { table.CreateStringColumn("Title", 255); }); dbo.CreateMutableProperty(session, "Abstract", table => { table.CreateStringColumn("Abstract", 2000); }); var deletion = dbo.CreateEntity("SessionDeletion", table => { var fk = table.CreateForeignKey(session); var timestamp = table.CreateDateTime2Column("Timestamp"); table.CreateUniqueIndex(fk.Column, timestamp); }); dbo.CreateEntity("SessionRestoration", table => { var fk = table.CreateForeignKey(deletion); table.CreateUniqueIndex(fk.Column); }); return(session); }
private AggregateRoot DefineField(SchemaSpecification schema) { var table = schema.CreateTable("Field"); var id = table.CreateIdentityColumn("FieldId"); var pk = table.CreatePrimaryKey(id); var name = table.CreateStringColumn("Name", 20); return(new AggregateRoot(pk)); }
private Entity DefineConference(SchemaSpecification dbo) { var conference = dbo.CreateEntity("Conference", table => { var guid = table.CreateGuidColumn("ConferenceGuid"); table.CreateUniqueIndex(guid); }); return(conference); }
private static void DefineContribution(SchemaSpecification schema, AggregateRoot mathematician) { var table = schema.CreateTable("Contribution"); var contributionId = table.CreateIdentityColumn("ContributionId"); var pk = table.CreatePrimaryKey(contributionId); var mathematicianId = table.CreateIntColumn("MathematicianId"); var description = table.CreateStringColumn("Description", 500); var indexMathematicianId = table.CreateIndex(mathematicianId); var fkMathematician = indexMathematicianId.CreateForeignKey(mathematician.PrimaryKey); }
private static AggregateRoot DefineMathematician(SchemaSpecification schema) { var table = schema.CreateTable("Mathematician"); var mathematicianId = table.CreateIdentityColumn("MathematicianId"); var pk = table.CreatePrimaryKey(mathematicianId); var name = table.CreateStringColumn("Name", 100); var birthYear = table.CreateIntColumn("BirthYear"); var deathYear = table.CreateIntColumn("DeathYear", nullable: true); return(new AggregateRoot(pk)); }
private void CreateMathematician(DatabaseSpecification db, SchemaSpecification dbo) { var table = dbo.CreateTable("Mathematician"); var id = table.CreateIdentityColumn("MathematicianId"); var unique = table.CreateGuidColumn("Unique"); var pk = table.CreatePrimaryKey(id); table.CreateUniqueIndex(unique); CreateMathematicianName(dbo, pk); }
private static void CreateMathematicianNamePrior(SchemaSpecification dbo, PrimaryKeySpecification mathematicianPk) { var table = dbo.CreateTable("MathematicianNamePrior"); var currentId = table.CreateIntColumn("MathematicianNameId"); var priorId = table.CreateIntColumn("PriorMathematicianNameId"); var currentIndex = table.CreateIndex(currentId); var currentFk = currentIndex.CreateForeignKey(mathematicianPk); var priorIndex = table.CreateIndex(priorId); var priorFk = priorIndex.CreateForeignKey(mathematicianPk); var pk = table.CreatePrimaryKey(currentId, priorId); }
private Entity DefineSpeaker(SchemaSpecification dbo) { var speaker = dbo.CreateEntity("Speaker", table => { var userName = table.CreateStringColumn("UserName", 255); table.CreateUniqueIndex(userName); }); dbo.CreateMutableProperty(speaker, "Name", table => { table.CreateStringColumn("Name", 100); }); return(speaker); }
public static Entity CreateEntity(this SchemaSpecification schema, string tableName, Action <TableSpecification> definitions) { var table = schema.CreateTable(tableName); var id = table.CreateIdentityColumn($"{tableName}Id"); definitions(table); var pk = table.CreatePrimaryKey(id); return(new Entity { Name = tableName, Table = table, IdColumn = id, PrimaryKey = pk }); }
private void CreateMathematicianName(SchemaSpecification dbo, PrimaryKeySpecification mathematicianPk) { var table = dbo.CreateTable("MathematicianName"); var id = table.CreateIdentityColumn("MathematicianNameId"); var mathematicianId = table.CreateIntColumn("MathematicianId"); var firstName = table.CreateStringColumn("FirstName", 50); var lastName = table.CreateStringColumn("LastName", 50); var hashCode = table.CreateFixedBinaryColumn("HashCode", 32); var index = table.CreateIndex(mathematicianId); var fk = index.CreateForeignKey(mathematicianPk); var pk = table.CreatePrimaryKey(id); CreateMathematicianNamePrior(dbo, pk); }
public static void CreateMutableProperty(this SchemaSpecification schema, Entity entity, string propertyName, Action <TableSpecification> definitions) { var table = schema.CreateTable($"{entity.Name}{propertyName}"); var id = table.CreateIdentityColumn($"{entity.Name}{propertyName}Id"); var fkid = table.CreateIntColumn($"{entity.Name}Id"); var index = table.CreateIndex(fkid); index.CreateForeignKey(entity.PrimaryKey); definitions(table); var propertyPk = table.CreatePrimaryKey(id); var predecessor = schema.CreateTable($"{entity.Name}{propertyName}Predecessor"); var predecessorId = predecessor.CreateIntColumn("Predecessor"); var successorId = predecessor.CreateIntColumn("Successor"); predecessor.CreatePrimaryKey(predecessorId, successorId); var predecessorIndex = predecessor.CreateIndex(predecessorId); var successorIndex = predecessor.CreateIndex(successorId); predecessorIndex.CreateForeignKey(propertyPk); successorIndex.CreateForeignKey(propertyPk); }
private void DefineSchedule(SchemaSpecification dbo, Entity conference, Entity acceptance) { var room = dbo.CreateEntity("Room", table => { var conferenceId = table.CreateForeignKey(conference); var roomNumber = table.CreateStringColumn("RoomNumber", 50); table.CreateUniqueIndex(conferenceId.Column, roomNumber); }); var timeSlot = dbo.CreateEntity("TimeSlot", table => { var conferenceId = table.CreateForeignKey(conference); var date = table.CreateDateColumn("Date"); var time = table.CreateTimeColumn("Time", fractionalSeconds: 0); table.CreateUniqueIndex(conferenceId.Column, date, time); }); dbo.CreateMutableProperty(acceptance, "Schedule", table => { table.CreateForeignKey(room); table.CreateForeignKey(timeSlot); }); }
public TestGenerator(string connectionString) { _connectionString = connectionString; SqlSrvProvider dbSchema = new SqlSrvProvider(connectionString); _schemaSpecification = dbSchema.LoadDbSpecification(); }
public new CompareResult Compare(SchemaSpecification specification) { return base.Compare(specification); }