EF4实体集:如何从TPH对象获取当前计数?

时间:2011-10-20 10:34:48

标签: c# entity-framework-4

我有这个非常简单的TPH模型。 当我使用context.TIImport.AddObject(tiObj)添加对象时 然后调用context.TIImport.Count() - 该值不包括新对象?

我希望在点击context.SaveChanges()

之前能够添加多个对象

enter image description here

var context = new CodeFirstContainer();

var g = new TIGuarantee
            {
                Id = 1,
                AccountNumber = "123",
                Amount = 123
            };
            context.TIImports.AddObject(g);

            var il = new TIImportLoan
            {
                Id = 2,
                AccountNumber = "123",
                Amount = 123
            };
            context.TIImports.AddObject(il);

            var i = context.TIImports.Count(); // = 0

            context.SaveChanges();
            var j = context.TIImports.Count(); // = 2
        }

有没有办法告诉集合中有多少对象没有调用SaveChanges?

1 个答案:

答案 0 :(得分:1)

您可以通过进入ObjectContext.ObjectStateManager并检查所有EntityState实体已添加到正确的Collection并将其包含在您的计数中来实现。为什么你想这样做却不明确。当您执行读取时,这些实体将不会包含在内,直到您使用SaveChanges()将它们实际持久保存到基础数据存储区中;如果您的目标不是让更改最终,那么您是否应该查看交易呢?