Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        public DbProject(DbSchema schema)
        {
            if (schema == null) throw new ArgumentNullException(nameof(schema));

            this.Schema = schema;
        }