我正在使用Entity Framework 4.1。
我有一个带有自动生成的Id字段的类
public class User
{
[Key]
public int Id { get; set; }
}
我想为每个用户在磁盘上创建一些匹配的目录(例如c:\ MyProgramFiles \ UserId)。为此,我需要检测到对象已由Entity Framework保存,因此分配了一个Id,我可以在文件路径中使用。
我更愿意把它连接起来,所以我不必写代码如下:
MyObjectContext.SaveChanges();
FileHelper.CreateUserDirectories(newUser.Id);
因为它依赖于没有被任何其他代码路径添加的用户。所以,我更喜欢挂钩实体框架事件,因此我可以检测正在创建的用户并在磁盘上创建匹配的目录。
问题是我只能在ObjectContext上看到'SavingChanges'事件。因为在保存对象之前调用它,所以它没用,因为对象仍然没有Id。
我想做的事情是否可以实现,如果可以,我该如何解决?
干杯!
答案 0 :(得分:1)
以下问题的答案有帮助吗? Entity Framework SaveChanges - Customize Behavior?
它指的是创建自己的派生上下文并覆盖SaveChanges方法,以便在调用base.SaveChanges()之前和之后添加自定义逻辑。
感谢Ladislav Mrnka的答案。