我正在寻找一种有效的方法来执行多行的插入,其中包含来自多个表的一些值!
基本上我正在解析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';
人名和国家/地区Feed ID包含在XML中。我想在Person表中使用ID而不是XML中的ID ..
有人可以建议我以有效的方式执行这些插入。
我一直在考虑创建一个DataTable,然后使用SQLBulkCopy,使用存储过程来运行数据表的循环,并为每个执行上述语句,以及ORM,如EntityFramework,Telerik Data Access等。