我编写了一个代码/数据库设计,我在应用程序中映射了以下类:
2,0,4,8
和交易类:
public class Items
{
public int ItemsId {get;set;} // suppose this is the PK in my table
public string ItemId { get; set; } // this is not same as table PK
public string Title { get; set; }
public int QuantitySoldTotal { get; set; }
public List<Transactions> transactions { get; set; }
}
所以现在我的情况是我在我的数据库中有旧项目及其交易,如下所示:
public class Transactions
{
public string TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
public int SaleQuantity { get; set; }
public int ItemsId {get;set;} // lets imagine this is the FK in my table Transactions
}
现在我有一个这样的新列表:
var oldItemsAndTransactions = new List<Items>(); // suppose this is from DB and it has 5000 items, and each of these items contains a collection of transactions...
现在这里是我感到困惑的部分,我不知道接下来该做什么:
我想在Items表中更新那些具有不同QuantitySoldTotal属性的项,并添加事务的差异(意味着只添加新事务)。新事务是表中具有不同TransactionID参数的事务。
项目表中根本没有的项目(意思是他们的ItemID字符串 - 不是PK,不是那里,我想插入所有这些项目及其相应的交易) ...
我认为这可以通过IEqualityComparer来完成,但我真的不确定如何做到这一点?有人可以帮助我吗?
P.S。这与现在我处理与列表列表进行比较的情况不同,我想以高效快捷的方式做到这一点吗?