我有如下的嵌套对象模型:
public class Product
{
public List<ProductOffering> ProductOfferings { get; set; }
}
public class ProductOffering
{
public int OfferingId { get; set; }
public string OfferingDescription { get; set; }
public string OfferingType { get; set; }
public List<OfferingPriceRegion> PriceRegions { get; set; }
}
我要插入Product
与列表沿着ProductOffering
其具有再次名单OfferingPriceRegion
在单个存储过程(SPInsertProduct
用C#)。除了实体框架,什么是最好的方法?因为Product中的ProductOfferings可能数量很多,例如400。在这种情况下,实体框架可能需要更多时间来循环保存功能。请提出建议。
Dapper
作为ADO.Net
基于对象的映射器,最好的选择是使用TableValuedParameters
,其中可以在一次调用中将所需的完整数据发送到数据库。
以下是要点:
DataTable
IEnumerable<T>
给DataTable
,你可以使用System.Data.DatasetExtensions
方法CopyToDataTable
或有一个API的NuGet FastMember来达到同样的注意事项:
TVP
和完全相同DataTable
,否则它将不起作用,并且错误不会提示问题,此映射与Json映射不同,后者不存在架构不匹配的问题如果记录数量非常多,则可能需要分成多个记录,DataTables
并使用Async-Await并发执行相同的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句