我真的很难理解这些东西。让我举一个我在哪里挣扎的例子。
我使用 Linq-2-Sql 作为我的应用程序的 DAL,以及 Rob Conery 的 MVC Storefront 示例应用程序中使用的 IRepository 模式。
在我的域中,我有一个包含地址模型集合的客户模型。在我的 UI 中有一个按钮,允许用户向客户添加新地址。这会打开一个地址编辑器,让他们填写所有信息。
接下来发生什么?地址是否保存到数据库中,然后添加到我的客户对象的列表中?它只是被添加到列表中,但在保存 Customer 对象之前不会更新?如果用户想删除一个地址怎么办?我是否删除数据库中的地址,然后将其从列表中删除?还是他们只是进行他们想要的所有删除/添加,我每次都从数据库中转储所有内容并使用 Customer.Addresses 集合中的任何内容进行更新?这里的正确流程是什么?
地址的集合是否应该只通过存储库通过调用这样的东西来更新:
public void AddAddressToCustomer(Customer c, Address a)
{
//validate and save address to db
//add the newly saved address to the Customer Object
}
帮助...