实体框架:将ChangeTracker转换为可观察到的反应流

问题描述 投票:-2回答:1

我们希望观察所有的实体框架ChangeTracker记录,它们是ModifiedAddedDeleted

如何获取ChangeTracker并将其转换为Observable?希望在“帐户条目”表更改时进行订阅。

var entities = storeDbContext.ChangeTracker
           .Entries()
           .Where(x => x.State == EntityState.Modified || x.State == EntityState.Deleted || x.State == EntityState.Added)

source.Subscribe(x => Console.WriteLine(x).Where(x => x.Entity is AccountEntry));

资源:

Entity Framework ChangeTracker Stream and Save to Query Afterwards

Generate numbers at random time intervals with rx

Create Observable for Streaming Class in Net Core

c# .net entity-framework .net-core system.reactive
1个回答
0
投票

您需要订阅/取消订阅事件的可观察对象:

Observable
    .FromEventPattern<EntityStateChangedEventArgs>(
        h => storeDbContext.ChangeTracker.StateChanged += h, 
        h => storeDbContext.ChangeTracker.StateChanged -= h)
    .Where(x => x.NewState == EntityState.Modified || x.NewState == EntityState.Deleted || x.NewState == EntityState.Added)
© www.soinside.com 2019 - 2024. All rights reserved.