【发布时间】:2013-10-30 00:08:45
【问题描述】:
表格说明
Producer_Table as table: pro_id[int], pro_fname[varchar], pro_lname[varchar];
Artist_Table 作为表:pro_id[int]、artist_id[int]、artist_fname[varchar]、artist_lname[varchar];
Song_table 作为表:artist_id[int]、song_id[int]、song_name[varchar]、song_length[time]
C# using(Datacontext context = new Datacontext())
{
Iqueryable<'Artist_Table> artist_query = context.Artist_Tables.where(aID => aId.artist_id == 8);
//现在说我要复制查询返回的所有数据和 //保留原始数据, //但是将此数据添加到新的 Artist_Table 对象中。
foreach(artist_query 中的Artist_Table artItem)
{
//Everything's good here.
Artist_Table artistObj = new Artist_Table();
artistObj.artist_fname = "Dally";
artistObj.artist_lname = "Winston";
//现在我希望将所有 Song_table 数据复制到这个新创建的实体。
//所以它会被复制,但具有不同的唯一 ID 值。
//..我确实做了另一个 foreach(Song_query 中的 Song s),但它花了很长时间。
}
}
【问题讨论】:
-
没有看到一些代码很难说。谁知道你用什么方法来执行这个过程?
-
好的,谢谢。我会把东西放在一起。我的开发机器在单独的网络上。
-
“需要很多时间”是什么意思?写代码的时间多还是执行的时间多?
-
好吧,如果我不得不猜测,根据您提供的大量代码示例,我不得不得出结论,您正在遍历属性几次,而不是在并行或管道模式下。如果您只需要复制数据,为什么不考虑 SMO?
-
对不起,我完全搞砸了问题的原始部分。这变得丑陋了。基里尔,我的意思是我必须遍历每个实体并创建一个新实例以将原始副本写入具有自己唯一标识符的数据库。
标签: c# sql entity-framework linq-to-sql