如何将对象持久化到包含asp.net中其他对象列表的数据库?

时间:2013-01-24 14:41:09

标签: c# asp.net

我们有一个班级X。类X包含许多不同类型的列表,如下所示。所有列表都是db中的子表。

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表。因此,每个ABCDE的数据库中都有一个表。

用于保存列表的每个表的方法。示例: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。没有框架。

1 个答案:

答案 0 :(得分:0)

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

第一个是使用数据集和DataAdapter来执行更新(已经很久了,我不确定术语是否正确)

第二种方法是单独循环记录并以原始SQL发出insert / updates语句。

您正在尝试使用较低级别的框架轻松实现高级操作,更多现代ORM提供您需要的功能。