如何处理旋转poco
本文关键字:旋转 poco 处理 何处理 | 更新日期: 2023-09-27 17:49:39
我有一个基于规范化表的POCO。我的问题是如何处理将这个非pivot/规范化对象更改为非规范化/pivot对象?我是否需要创建另一个POCO是旋转版本?一个人如何处理这种情况?
假设规范化POCO定义为: 客户表CustomerId int
BestSeller bool
NumberOfOrders int
我想把它表示为
数据透视客户表
CustomerId int
BestSellerOrders int
NotBestSellerOrders int
这个可以,但我不确定我喜欢它:
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();
}
}
是的,这是一个新的只读实体映射到定义pivot查询的数据库视图,或者可能是一个新的自定义对象,作为ExecuteStoreQuery
执行的自定义SQL查询的实体化结果,因为在SQL server中使用pivot更容易和更快。