将原始对象添加到包含原始对象的list属性的新对象

时间:2017-04-21 19:30:38

标签: c# data-modeling

背景信息:

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

问题:

目前有一个功能可以解析电子邮件中的信息并将数据放入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);
}

1 个答案:

答案 0 :(得分: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);
}