我有一个应用程序,用户可以上传文件并将文件与项目相关联。项目可以重复。以下是对象的示例:
Public class Project{
Int ProjectId{get; set;}
string ProjectName{get;set;}
List<int> FileIds{get;set}
}
当我复制项目时,比如说,将相同文件与新项目相关联的最佳方法是什么?我有两个项目和文件表。我有一个关系表,其中包含项目ID和文件ID的外键。当我创建一个新的项目ID时,我想将文件ID批量插入关系表。迭代List和惰性一次是否一样好或者有更好的方法吗?
答案 0 :(得分:1)
如果您正在复制的项目已经在SQL Server上,那么最有效的方法是在SQL Server上进行复制,这很简单:
INSERT INTO Files (ProjectId,FileId)
SELECT 2 As ProjectId, FileId
FROM Files WHERE ProjectId = 1
新项目为ProjectId = 2且旧项目为ProjectId = 1
答案 1 :(得分:0)
将SqlBulkCopy或表值参数用于存储过程。