【发布时间】:2017-08-13 01:33:27
【问题描述】:
问题:我向我的服务器发送请求,并将模型数组添加到数据库中。例如,一个 Array 包含 5000 个模型。现在,所有这些都必须检查它们的引用 ID 是否已存在于表一中,并且该 ID 是否不在实际表中(在示例中命名为二)。如果是这种情况,我会将其添加到数据库中。我会问 5000 次,每个模型一次,这需要很长时间。由于我很少使用数据库和实体框架,我真的不知道如何改进查询。我做错了什么,我可以改进什么?
foreach(twoModel model in Models){
if (Context.TAB_One.All(m => m.Id != model.RefId_One)) {
continue;
}
if (Context.TAB_Two.Any(m => m.Id == model.Id)) {
continue;
}
Context.TAB_Two.Add(model);
}
【问题讨论】:
-
在
TAB_One和TAB_Two中分别找到的预期记录总数是多少? -
标签一将包含更少。数据将存储在数据库中,并且永远不会/或很少被删除。因此,对于这两个表,记录都会随着时间的推移而增加。对于我添加一组 Tab_two 数据的每个请求,选项卡一个只会添加一次。您可以说有大约 5000 倍的记录,但可能从大约 500 到未知(可能是 20000 个条目/Tab_One 条目)。缩写形式是:1...n,其中 n 可能介于 2000 和 6000 之间。
标签: c# sql database entity-framework linq