我试图找到一种将强类型List插入SQL表的不同方法。我想到的唯一方法是将List序列化为XML并将其作为XML类型的参数传递给SQL。
流程相当简单,工作正常,但我试图看到它有更好的替代解决方案吗?
答案 0 :(得分:0)
为什么要将列表插入数据库表?我不确定你要做什么,但你当然可以将列表中的每个节点表示为数据库表中的一行。该表将包含类中每个字段的列,以及一个名为“ListRank”的额外列,用于存储节点在列表中的位置。如果您创建了linq-to-sql连接,那么您可以通过简单的查询轻松地从DB获取列表。
Dim myDB as Datacontext = new DataContext()
Dim students as List(Of Student) = (From s as student in myDB.students select s order by s.listRank ascending).toList
'//students now holds (Bob, A), (Sue, B)
表格如下所示:
Name Grade ListRank
======== ======== =========
Bob A 1
Sue B 2
* 注意 *您必须在数据库中的ListRank上创建唯一性约束,这样您才能确保没有两个学生在列表中具有相同的列表排名/位置。