2
我有一个基于标准化表的POCO。我的问题是,我如何处理将这个没有旋转/标准化的对象改为非标准化/旋转对象?我是否需要创建另一个POCO,这是一个支点版本?如何处理这个问题?如何处理枢轴POCO?
让我们假设归一化的POCO定义为:
客户表
CustomerId int
BestSeller bool
NumberOfOrders int
,我要代表这是
透视客户表
CustomerId int
BestSellerOrders int
NotBestSellerOrders int
UPDATE
这工作,但不知道我喜欢它:
public void UpdateCustomer(CustomerPivot customerPivot)
{
using (var context = DataObjectFactory.CreateContext())
{
// find all the rows to update (2)
var rowsToUpdate = context.Customer
.Where(w => w.CustomerId == customerPivot.CustomerId).ToList();
var first = rowsToUpdate.Where(w => w.BestSeller == true).SingleOrDefault();
var second = rowsToUpdate.Where(w => w.BestSeller == false).SingleOrDefault();
first.NumberOfOrders = (int)customerPivot.BestSellerOrders;
second.NumberOfOrders = (int)customerPivot.NotBestSellerOrders;
context.Customer.ApplyChanges(first);
context.Customer.ApplyChanges(second);
context.SaveChanges();
}
}
我希望不会是这种情况:(如果我想执行基本的CRUD操作并将新的/更新/删除的信息放回到原始POCO对象中,这种方法仍然可行吗? – 2011-04-11 21:55:06
我不确定你想要在客户端使用CRUD并获得修改的Pivot客户?在这种情况下,您必须再次查询db。 – 2011-04-11 22:06:37
对不起,我的意思是我只想向用户显示数据为pivoted/denormalized。 – 2011-04-11 22:09:16