public static void BuildModel(LyniconSystem sys)
        {
            //if (!Collator.Instance.RepositoryBuilt)
            //    throw new Exception("In CoreDb.OnModelCreating because there was a use of CoreDb before repository was built");

            Debug.WriteLine("Building SummaryDb");

            var requiredBaseTypes = ContentTypeHierarchy.AllContentTypes
                                    .Select(ct => Collator.Instance.ContainerType(ct))
                                    .Select(crt => sys.Extender.ExtensionTypes().Contains(crt)
                               ? sys.Extender.Base(crt)
                               : crt)
                                    .Distinct()
                                    .Where(crt => Repository.Instance.Registered(crt).DataSourceFactory is CoreDataSourceFactory)
                                    .ToList();

            var builder = new ModelBuilder(SqlServerConventionSetBuilder.Build());

            sys.Extender.BaseTypes.Do(t => builder.Ignore(t));

            foreach (var sumsType in sys.Extender.BaseTypes.Where(bt => requiredBaseTypes.Contains(bt)))
            {
                builder.Entity(sys.Extender.Summarised(sumsType)).ToTable(LinqX.GetTableName(sumsType));
            }

            SummaryModel = builder.Model;
        }
Exemple #2
0
        protected static void BuildModel()
        {
            //if (!Collator.Instance.RepositoryBuilt)
            //    throw new Exception("In CoreDb.OnModelCreating because there was a use of CoreDb before repository was built");

            Debug.WriteLine("Building CoreDb");

            var requiredTypes = ContentTypeHierarchy.AllContentTypes
                                .Select(ct => Collator.Instance.ContainerType(ct))
                                .Distinct()
                                .Where(crt => Repository.Instance.Registered(crt).DataSourceFactory is CoreDataSourceFactory)
                                .ToList();

            var builder = new ModelBuilder(SqlServerConventionSetBuilder.Build());

            // temp, breaks separability of Lynicon systems
            var sys = LyniconSystem.Instance;

            foreach (Type baseType in sys.Extender.BaseTypes.Where(t => requiredTypes.Contains(sys.Extender[t])))
            {
                builder.Entity(sys.Extender[baseType]).ToTable(LinqX.GetTableName(baseType));
            }

            CoreModel = builder.Model;
        }
Exemple #3
0
        protected override void OnModelCreating(ModelBuilder builder)
        {
            var requiredTypes = ContentTypeHierarchy.AllContentTypes
                                .Select(ct => Collator.Instance.ContainerType(ct))
                                .Distinct()
                                .Where(crt => Repository.Instance.Registered(crt).DataSourceFactory is CoreDataSourceFactory)
                                .ToList();

            var sys = LyniconSystem.Instance;

            foreach (Type baseType in sys.Extender.BaseTypes.Where(t => requiredTypes.Contains(sys.Extender[t])))
            {
                builder.Entity(sys.Extender[baseType]).ToTable(LinqX.GetTableName(baseType));
            }

            base.OnModelCreating(builder);
        }
Exemple #4
0
        protected override void OnModelCreating(ModelBuilder builder)
        {
            Debug.WriteLine("Building SummaryDb");

            var sys = LyniconSystem.Instance;

            var requiredBaseTypes = ContentTypeHierarchy.AllContentTypes
                                    .Select(ct => Collator.Instance.ContainerType(ct))
                                    .Select(crt => sys.Extender.ExtensionTypes().Contains(crt)
                               ? sys.Extender.Base(crt)
                               : crt)
                                    .Distinct()
                                    .Where(crt => Repository.Instance.Registered(crt).DataSourceFactory is CoreDataSourceFactory)
                                    .ToList();

            sys.Extender.BaseTypes.Do(t => builder.Ignore(t));

            foreach (var sumsType in sys.Extender.BaseTypes.Where(bt => requiredBaseTypes.Contains(bt)))
            {
                builder.Entity(sys.Extender.Summarised(sumsType)).ToTable(LinqX.GetTableName(sumsType));
            }
        }