所以我有一个带静态方法的类,它使用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返回到前端。
答案 0 :(得分:1)
这是由一位高级开发人员修复的,他最终选择了工厂模式。我回去工作时会添加代码:)