private static DbProject PhoenixModel() { var outlets = DbTable.Create(@"Outlets", new[] { DbColumn.String(@"Name"), }); var visits = DbTable.Create(@"Visits", new[] { DbColumn.ForeignKey(outlets), DbColumn.DateTime(@"Date"), }); var activityTypes = DbTable.Create(@"ActivityTypes", new[] { DbColumn.String(@"Name"), }); var activities = DbTable.Create(@"Activities", new[] { DbColumn.DateTime(@"Date"), DbColumn.ForeignKey(activityTypes), DbColumn.ForeignKey(visits), }, @"Activity"); var brands = DbTable.Create(@"Brands", new[] { DbColumn.String(@"Name"), }); var flavors = DbTable.Create(@"Flavors", new[] { DbColumn.String(@"Name"), }); var articles = DbTable.Create(@"Articles", new[] { DbColumn.String(@"Name"), DbColumn.ForeignKey(brands), DbColumn.ForeignKey(flavors), }); var activityNoteTypes = DbTable.Create(@"ActivityNoteTypes", new[] { DbColumn.String(@"Name"), }); var activityNotes = DbTable.Create(@"ActivityNotes", new[] { DbColumn.String(@"Contents"), DbColumn.DateTime(@"Created_At"), DbColumn.ForeignKey(activityNoteTypes), DbColumn.ForeignKey(activities), }); var schema = new DbSchema(@"Phoenix", new[] { outlets, visits, activityTypes, activities, brands, flavors, articles, activityNoteTypes, activityNotes }); var project = new DbProject(schema); // Mark tables as Modifiable, all tables are ReadOnly by default project.MarkModifiable(visits); project.MarkModifiable(activities); project.MarkModifiable(activityNotes); // Attach Inverse tables project.AttachInverseTable(visits); // Hidden tables project.MarkHidden(brands); project.MarkHidden(flavors); return project; }
private static DbProject WordpressModel() { var users = DbTable.Create(@"Users", new[] { DbColumn.String(@"Name"), }); var blogs = DbTable.Create(@"Blogs", new[] { DbColumn.String(@"Name"), DbColumn.String(@"Description"), DbColumn.ForeignKey(users) }); var posts = DbTable.Create(@"Posts", new[] { DbColumn.String(@"Title"), DbColumn.String(@"Contents"), DbColumn.DateTime(@"CreationDate"), DbColumn.ForeignKey(blogs), }); var comments = DbTable.Create(@"Comments", new[] { DbColumn.String(@"Contents"), DbColumn.DateTime(@"CreationDate"), DbColumn.ForeignKey(users), DbColumn.ForeignKey(posts), }); var schema = new DbSchema(@"WordPress", new[] { users, blogs, posts, comments, }); var project = new DbProject(schema); project.AttachInverseTable(posts); project.MarkModifiable(blogs); project.MarkModifiable(posts); project.MarkModifiable(comments); return project; }