将完整实体传递到存储库或只是ID以删除它们?

时间:2010-11-13 20:02:19

标签: c# repository entity data-access-layer

我刚才问自己是否真的需要将整个List SelectedCustomers传递给Repository的delete方法,如:

_customerRepo.DeleteCustomers(SelectedCustomers);

中删除的客户的ID传递出来并不是更好
List<int> SelectedCustomerIDs = GetSelectedCustomersIDs(SelectedCustomers);
_customerRepo.DeleteCustomers(SelectedCustomerIDs);

我没有使用ORMapper,它肯定只接受完整的实体来接受更改或从上下文中删除它。

我正在使用sqlite所以我认为传递一个int值的列表比传递一个实体列表更快/更少。

您怎么看?

1 个答案:

答案 0 :(得分:1)

对象已经在内存中,并且在将它们传递到存储库时不会复制它们,而只是对它们的引用。因此,您不会节省内存(除非您的存储库位于不同的服务器上)。

只要在您的存储库中,您只是使用ID传递给数据库,那么您应该没问题。