将相同的实体对象添加到SQL服务器数据库
问题描述:
我试图添加相同的对象到一个表使用for循环作为工作实体可能需要不止一次。我首先尝试这种方式,但它只保存一条记录。将相同的实体对象添加到SQL服务器数据库
for (int i = 0; i < required; i++)
{
_Context.Jobs.AddObject(n);
}
然后我试过这种方式思维实体框架可能不会看到对象是不同的。
for (int i = 0; i < required; i++)
{
if (i > 0)
{
Job additionalJob = new Job();
additionalJob = n;
_salesContext.Jobs.AddObject(additionalJob);
}
else
{
_Context.Jobs.AddObject(n);
}
}
该数据库仅保存在记录中。任何帮助,将不胜感激。
答
类是引用类型。你还在设置额外的工作,这完全一样。类使用指向内存空间的指针,所以你所做的只是制作两个指针。当添加记录时,EF只是添加相同的数据。
不是设置为n,而是从n复制属性。
即
additionaljob.Name = n.Name;
或
var additonalJob = new Job() { Name = n.Name };
是的,我认为这是我必须做的,我只是现在希望有做,因为有相当多的性质工作实体。 我现在给这个去吧,让你知道我如何去。 –
我遇到过这样的问题,我创建了一个辅助函数,循环遍历类的属性并将它们复制到目标类。这将是非常容易做,并会节省大量的打字和更易于维护。 –
这是一个好主意!此外,您的答案完美无瑕,我会将其标记为现在的答案。 感谢您的帮助。 –