我正在使用 EF5。我想初始化 DbContext 中包含的 DbSet 集合的每个对象,最好(但不一定)在初始化对象字段(但不一定与其他 POCO 的关系)之后。这可以简称为“施工后拦截”或“加载后拦截”。
初始化需要使用与 DbContext 实例(当前用户设置等)并行存在的对象实例来设置对象的一些属性。
所以基本上:
var settings = new Settings();
settings.PrintName = false;
var context = new MyDbContext();
// here initialize context so that every User object get initialized with settings
var john = context.Users.Where(x => x.Name == "John").FirstOrDefault();
Assert.AreEqual(john.Settings, settings);
除了遍历集合中的所有对象并手动设置属性之外,还有什么可能的方法来实现这一点?