返回不同版本的数据集

时间:2017-11-29 00:09:09

标签: c# refactoring factory-pattern

所以我有一个带静态方法的类,它使用EF来检索某组邮件列表并映射到该类。

 public static List<MailingList> GetMailingListsForUser(IUsersAccess user, IProspectorDataSource db )
 {
    return db.MailingLists.Where(x => x.UserID == user.UserID).ToList()
        .Select(y => new MailingList(y, db) ).ToList();
 }

现在虽然我有一个proc将返回MailingList以及一些额外的东西。我不想将这些额外的列(将在其他部分和功能区域中使用)添加到此类。解决这个问题的最佳方法是什么?

我在想一个工厂模式,它将根据需要生成一个不同的类来实现不同的契约(接口)。试着实现它,并在完成后发布代码/工作。

想知道其他人在这样的情况下做了什么,以及是否有更好的方法来解决这个问题。

编辑:(一些额外的信息可以帮助人们理解我的意思)。

public class MailingList { public int MailingListID { get; set; } public string Name { get; set; } public string Comments { get; set; } public List<string> Tags { get; set; } public int UserID { get; set; } public System.DateTime DateCreated { get; set; } public string CreatedBy { get; set; } public System.DateTime LastModified { get; set; } public string ModifiedBy { get; set; } public List<MailingListAddress> MailingListAddresses { get; set; }

这是我们返回的对象的定义。现在有一个新实例,我将从proc返回一些额外的列并映射到MailingList。所以我可以在这里添加属性,但问题是MailingListAddresses将为null,因为它们不会被存储的proc返回。那么有没有一种方法可以映射到特定的属性,而不必每次都将MailingListAddresses的null返回到前端。

1 个答案:

答案 0 :(得分:1)

这是由一位高级开发人员修复的,他最终选择了工厂模式。我回去工作时会添加代码:)