我试图找到一种将强类型列表插入 SQL 表的不同方法。我想到的唯一方法是将 List 序列化为 XML 并将其作为 XML 类型的参数传递给 SQL。
过程相当简单,而且效果很好,但我想看看有没有比这个解决方案更好的选择?
我试图找到一种将强类型列表插入 SQL 表的不同方法。我想到的唯一方法是将 List 序列化为 XML 并将其作为 XML 类型的参数传递给 SQL。
过程相当简单,而且效果很好,但我想看看有没有比这个解决方案更好的选择?
为什么要将列表插入到数据库表中?我不确定您要做什么,但您当然可以将列表中的每个节点表示为数据库表中的一行。该表将包含类中每个字段的列,以及一个名为“ListRank”的额外列,用于存储节点在列表中的位置。如果您创建了一个 linq-to-sql 连接,那么您可以通过简单的查询轻松地从数据库中获取列表。
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 上创建唯一性约束,以便您可以确定没有两个学生在列表中具有相同的列表排名/位置。