0

我们有一堂课X。类X包含许多不同类型的列表,如下所示。所有列表都是数据库中的子表。

public class X
{
    public List<A> As { get; set; }
    public List<B> Bs { get; set; }
    public List<C> Cs { get; set; }
    public List<D> Ds { get; set; }
    public List<E> Es { get; set; }
}

我的存储库接受X并需要将所有列表持久保存到数据库中。

public void Save(X value)
{
    // Save code here
}

保存所有子列表的最佳选择是什么?列表中的每种类型都映射到一个 db 表。所以在 db 中对于每个A, B, C, D,都有一个表E

用于保存列表的每个表的方法。例:InsertAsById(List<A> values, int id)等等。然后在Save(). 使用这种方法,保存看起来像:

public void Save(X value)
{
    InsertAsById(value.As, value.id);
    InsertBsById(value.Bs, value.id);
    // So on for each list.
}

我们必须使用 ADO.NET。没有框架。

4

1 回答 1

0

如果您仅限于使用 ADO.NET,我认为有两条路线。

第一个是使用 Datasets 和 DataAdapter 来执行更新(这么久了,我不确定术语是否正确)

第二种方法是逐个遍历记录并将插入/更新语句作为原始 SQL 发出。

您正在尝试使用较低级别的框架使高级操作变得容易,许多更现代的 ORM 提供了您需要的那种功能。

于 2013-01-24T15:42:37.767 回答