【发布时间】:2009-09-30 09:26:00
【问题描述】:
场景:
我有一个通用的审核列表和一个通用的 AuditImage 列表。这两个列表是从数据库表中编译的。因此,一个 AuditImage 可以进行许多审核。正如您将在下面看到的,表映射到的类在数据库中时通过外键关系“ImageID”连接,但是一旦将数据提取到代码中的列表中,就没有“物理连接”了。
数据库表映射到的类:
public class AuditImage
{
public Guid ImageID { get; set; }
public string LowResUrl { get; set; }
}
public class Audit
{
public Guid AuditID { get; set; }
public Guid ImageID { get; set; }
public DateTime CreatedDate { get; set; }
public string CreatedBy { get; set; }
public string Comment { get; set; }
}
问题:
我现在想通过从每个列表中提取数据并将“Audit.ImageID == AuditImage.ImageID”上的数据组合到一个新列表中来编译一个“Trail”对象列表。
public class Trail
{
public Guid ImageID { get; set; }
public DateTime CreatedDate { get; set; }
public string CreatedBy { get; set; }
public string Comment { get; set; }
public string LowResUrl { get; set; }
}
(上面基本上结合了“LowResUrl”字段与基于 ImageID 相同的每个审核。)
问题:
我该怎么做呢!?我曾考虑过使用 foreach 循环和 linq 来创建一个新的跟踪对象列表,但我不太清楚我将如何去做?!
我们将不胜感激。
【问题讨论】:
-
这从一开始就带有糟糕设计的味道。为什么要将类与 ID 关联,而不是将 AuditImage 实例放到 Audit 实例中?
-
令人讨厌的 Silverlight 应用程序设计与凌乱的服务器端代码......
标签: c# list generic-list