我们有一个班级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表。因此,每个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。没有框架。
答案 0 :(得分:0)
如果您仅限于使用ADO.NET,我认为有两条路线。
第一个是使用数据集和DataAdapter来执行更新(已经很久了,我不确定术语是否正确)
第二种方法是单独循环记录并以原始SQL发出insert / updates语句。
您正在尝试使用较低级别的框架轻松实现高级操作,更多现代ORM提供您需要的功能。