【问题标题】:Adding an original object to new object which contains a list property of the original object将原始对象添加到包含原始对象的列表属性的新对象
【发布时间】:2017-09-18 22:07:58
【问题描述】:

背景信息:

目前正在开发一个程序,其中我有一个用于存储信息的自定义数据模型。需要将数据模型 1 添加到包含数据模型 1 的列表属性的新对象数据模型中。

问题:

目前有一个函数可以从电子邮件中解析出信息并将数据放入 Act_Email 数据中。一旦函数完成,它会将 Act_Email 的对象返回给调用它的函数。但是,我想根据我的 Act_Email 创建一个对象列表。目前,在我开始将我的 Act_Email 对象实际添加到应该包含我的 Act_Email 对象列表的另一个对象之前,以下代码运行良好。

Act_Email

namespace ActivityCrawler.Models
{
    class Act_Email
    {
        public string ActivityID { get; set; }
        public string ActivityBody { get; set; }
        public string ActivityThreadIndex { get; set; }
        public string ActivityMessageID { get; set; }
        public string ActivitySubject { get; set; }
        public string ActivityWebLink { get; set; }
        public string BulkEmail { get; set; }
        public string CampaignID { get; set; }
    }
}

namespace ActivityCrawler.Models
{
    class ActivityDBCollection
    {
        public List<Act_Email> MinedEmailData { get; set; }
        public List<Act_DHG_Staff> MinedDHGStaffData { get; set; }
        public List<Act_Header> MinedHeader { get; set; }
        public List<Act_Attachments> MinedAttachmentData { get; set; }
        public List<Act_Notes_Tasks> MinedNotes_TaskData { get; set; }
        public List<Act_Crm_Leads_Contacts> MinedContact_Leads_Data { get; set; }
    }
}

public static Act_Email Extract_Act_Email(UnparsedData recordList)
{
    Act_Email parsedData = new Act_Email();
    try
    {
        if (recordList.ActivityType != "Notes")
        {
            parsedData.ActivityWebLink = recordList.ActivityWebLink;
            parsedData.ActivityBody = recordList.ActivityBody;
            parsedData.ActivityID = recordList.ActivityHeaderID;
            parsedData.ActivityMessageID = recordList.ActivityUniqueID;
            parsedData.ActivitySubject = recordList.ActivitySubject;
            parsedData.ActivityThreadIndex = recordList.ActivityParentId;
        }
    }
    catch (Exception ex)
    {
        throw;
    }


    return parsedData;
}

static void Main(string[] args)
{
 ActivityDBCollection DBData = new ActivityDBCollection();
Act_Email minedEmailData = Helpers.DataParsers.Extract_Act_Email(emailDataModel);
    DBData.MinedEmailData.Add(minedEmailData);
}

【问题讨论】:

  • 您正在创建一个 Act_Email 对象“minedEmailData”,然后尝试添加代码中不存在的 minedContact_Leads_Data 还是我遗漏了什么?
  • @simon 抱歉,我修复了代码,但这是我得到一个对象的想法,我想将它添加到另一个对象中,该对象将包含我的对象列表
  • 试试 dpimente 的建议。如果这不起作用,请尝试将 ActivityDBCollection 中的列表设为虚拟,例如公共虚拟列表 MinedEmailData { get;放; }

标签: c# data-modeling


【解决方案1】:

您遇到了一个问题,“将我的 Act_Email 对象添加到我的另一个对象中,该对象应该包含我的 Act_Email 对象的列表。”

看来您的其他对象(DBData.MinedContact_Leads_Data,其中 DBData 为 'ActivityDBCollection')确实包含 Act_email 类的列表。

此外,在您的函数“Extract_Act_Email”中,您总是在创建一个 Act_Email 对象,因此应该返回一个。

这是一个空引用错误吗?我会检查您的 ActivityDBCollection 类初始化程序或像这样手动初始化字段“MinedEmailData”

static void Main(string[] args)
{

    ActivityDBCollection DBData = new ActivityDBCollection();
    DBData.MinedEmailData = new List<Act_Email>();
    Act_Email minedEmailData = Helpers.DataParsers.Extract_Act_Email(emailDataModel);
    DBData.MinedEmailData.Add(minedEmailData);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2015-02-28
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多