我正在寻找一种有效的方法来使用来自多个表的某些值执行多行的插入!
基本上我正在解析一个 XML 并创建一个自定义对象列表,然后我想将其插入到我的数据库中。这些行的一些值包含在 XML 中,但其他值需要从其他表中检索。
例子:
两张表:
Person:
PersonID (identity), Name (nvarchar), CountryID
Country (a lookup table including my id and the one I get from the XML)
CountryID (identity) , CountryXMLID, Name
我在 C# 中浏览了我的列表,创建了一个团队列表(自定义对象),然后我想以平均每分钟 1000 行的速度执行此操作:
INSERT INTO Person (Name, CountryID)
SELECT 'George', CountryID FROM Countries WHERE CountryXMLID = '1';
人名和国家提要 ID 包含在 XML 中。我想使用 Person 表中的 ID 而不是 XML 中的 ID ..
有人可以建议我以有效的方式执行这些插入。
我一直在考虑创建一个 DataTable,然后使用 SQLBulkCopy,使用存储过程在数据表中运行一个循环并为每个语句执行上述语句,以及像 EntityFramework、Telerik Data Access 等 ORM。