由于存在大量数据,C#构建需要很长时间 - c#

我有一个包含三个项目的解决方案。其中一个项目需要很长时间才能构建,我将其范围缩小到了初始化数据,尤其是一大批郊区对象。

以下是APISuburbInitialiser类,但尤其是郊区数组-这是问题所在:

using JobsLedger.API.InitalisationData.Interfaces;
using JobsLedger.DATA;
using JobsLedger.DATA.Entities;
using System.Linq;

namespace JobsLedger.API.InitalisationData {
    public class APISuburbInitialiser : IAPISuburbInitialiser {
        public void InitialiseStaInitialiseStatesAndSuburbs(APIDbContext context) {
            InitialiseStates(context);
            InitialiseSuburbs(context);
        }

        private void InitialiseStates(APIDbContext context) {
            // Look for any students.
            if (context.States.Any()) {
                return; //DB table data already created.
            }

            var states = new State[]
            {
                new State { StateName = "New South Wales", StateShortName = "NSW" },
                new State { StateName = "Victoria", StateShortName = "VIC" },
                new State { StateName = "Queensland", StateShortName = "QLD" },
                new State { StateName = "South Australia", StateShortName = "SA" },
                new State { StateName = "Western Australia", StateShortName = "WA" },
                new State { StateName = "Tasmania", StateShortName = "TAS" },
                new State { StateName = "Nothern Territory", StateShortName = "NT" },
                new State { StateName = "Australian Captial Territory", StateShortName = "ACT" }
            };

            foreach (State s in states) {
                context.States.Add(s);
            }

            context.SaveChanges();
        }

        private void InitialiseSuburbs(APIDbContext context) {

            // Look for any suburbs.
            if (context.Suburbs.Any()) {
                return; //DB table data already created.
            }

            // Upgraded due to database arbritarily assigning Id keys to  states in different order.
            var stateID = context.States.FirstOrDefault(s => s.StateShortName == "ACT").Id;

            var suburbs = new Suburb[] {
                new Suburb { PostCode = "200", SuburbName = "Australian National University", StateId = stateID, Latitude = -35.2777, Longditude = 149.1189 },
                new Suburb { PostCode = "221", SuburbName = "Barton", StateId = stateID, Latitude = -35.3049, Longditude = 149.14124 },
                new Suburb { PostCode = "2540", SuburbName = "Hmas Creswell", StateId = stateID, Latitude = -35.028, Longditude = 150.55013 },
                new Suburb { PostCode = "2540", SuburbName = "Jervis Bay", StateId = stateID, Latitude = -35.028, Longditude = 150.55014 },
                new Suburb { PostCode = "2540", SuburbName = "Wreck Bay", StateId = stateID, Latitude = -35.0169, Longditude = 150.63193 },
                new Suburb { PostCode = "2600", SuburbName = "Duntroon", StateId = stateID, Latitude = -35.3, Longditude = 149.16674 },
                new Suburb { PostCode = "2600", SuburbName = "Russell", StateId = stateID, Latitude = -35.2977, Longditude = 149.1514 },
                new Suburb { PostCode = "2600", SuburbName = "Harman", StateId = stateID, Latitude = -35.3053, Longditude = 149.13654 },
                new Suburb { PostCode = "2600", SuburbName = "Hmas Harman", StateId = stateID, Latitude = -35.31, Longditude = 149.13853 },
                new Suburb { PostCode = "2600", SuburbName = "Deakin", StateId = stateID, Latitude = -35.3193, Longditude = 149.10314 },
                new Suburb { PostCode = "2600", SuburbName = "Parliament House", StateId = stateID, Latitude = -35.3126, Longditude = 149.12783 },
                new Suburb { PostCode = "2600", SuburbName = "Yarralumla", StateId = stateID, Latitude = -35.2998, Longditude = 149.10584 },
                    ...

郊区如下:

using JobsLedger.CATALOG.Entities.Interfaces;
using System.Collections.Generic;

namespace JobsLedger.CATALOG.Entities
{
    public class Suburb : IEntityBase
    {
        public Suburb()
        {
            Tenants = new List<Tenant>();
            Users = new List<User>();
        }

        public int Id { get; set; }
        public string SuburbName { get; set; }
        public string PostCode { get; set; }

        public double Latitude { get; set; }
        public double Longditude { get; set; }

        // One state to many suburbs
        public int StateId { get;  set; }
        public State State { get; set; }


        public virtual ICollection<Tenant> Tenants { get; set; }
        public virtual ICollection<User> Users { get; set; }
    }
}

有16000个奇怪的郊区,我使用此数组在数据库中填充了所有郊区的表。

我刚刚发现的是,这一系列的郊区(以及另一个初始化类中的1000个客户)使该项目的构建花费了很长时间-实际上是几分钟。取消这些课程,构建几乎不需要时间。

有没有一种方法可以在项目中使用它(或在运行时以另一种方式加载此数据),以免导致构建花费几分钟。

更新

我最初选择创建两个新项目-一个用于Initializations(供所有数据库使用-它是一个租户的系统),另一个用于testdata-仅针对一个数据库。然后,我进一步创建了另一个授权项目。这样,我可以消除所有其他项目(或其中一些项目)正在访问的那些代码部分,并使它们停滞不前,需要一个构建。这样做确实有助于我了解项目之间的依赖关系工作方式。

c#大神给出的解决方案

将郊区init移到另一个项目中。然后将对其进行一次编译,但并非每次您对其他项目进行更改时都将进行编译。
或将邮政编码/名称信息移到资源文件中。在启动时阅读它,这应该使其构建更快。

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

将python scikit学习模型导出到pmml - python

我想将python scikit-learn模型导出到PMML。哪个python软件包最合适?我阅读了有关Augustus的内容,但是我无法使用scikit-learn模型找到任何示例。 python大神给出的解决方案 SkLearn2PMML是 JPMML-SkLearn命令行应用程序周围的薄包装。有关受支持的Scikit-Learn Estimator和…

Visual Studio Code可以增量编译Java Web App项目吗? - java

我是Visual Studio Code的新手。我正在尝试将其与使用Maven的现有Java Web应用程序项目一起使用。我已经下载了推荐的Java扩展,例如Java Extension Pack,Java Maven和Java Tomcat。在IntelliJ(我通常的IDE)中,我可以很快地从Java的少量编辑转到Tomcat中刷新的WAR。如果我编辑文…

在熊猫中,如何从单词列表或单词集中选择数据框中的短语? - python

在Python3和熊猫中,我具有数据框:df_projetos_api_final.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 93631 entries, 1 to 93667 Data columns (total 21 columns): AnoMat…

尝试在Spring MVC中使用OAuth保护资源 - java

我们已经有在Spring MVC上用Java编写的REST Web服务,我一直在尝试保护它们。OAuth服务器是在另一个处理访问令牌登录和创建的网站中实现的。因此,在向用户授予对Web服务的访问权限之前,我需要验证访问令牌是否正确。但是,带有OAuth的Spring Security的文档似乎真的很差,并且示例代码实际上并未解释其作用!我什至不确定是否应该为…