想要弄清楚我们是如何实现元数据的。
我们的 Breeze Api 不直接绑定到 SQL Server,因此我们实现了自定义 EFContextProvider 和下面的 DbSet....
public class MetadataDbContext : DbContext
{
public MetadataDbContext()
: base(nameOrConnectionString: "MetadataDb")
{
Database.SetInitializer<MetadataDbContext>(null);
}
public DbSet<Order> Orders { get; set; }
public DbSet<OrderMeter> OrderMeters { get; set; }
public DbSet<OrderDemand> OrderDemand { get; set; }
public DbSet<MeterHistory> MeterHistory { get; set; }
public DbSet<FieldTech> FieldTechs { get; set; }
public DbSet<Dispatcher> Dispatchers { get; set; }
public DbSet<OrderLookupData> LookupData { get; set; }
public DbSet<Organization> Organizations { get; set; }
public DbSet<Location> Locations { get; set; }
public DbSet<Alert> Alert { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
如您所见,我将 DbSet 指向一个名为“MetadataDb”的数据库,它只是我们在项目中部署的一个 sdf 文件。然后,我们在 Context Provider 中覆盖 SaveChangesCore 以将我们的保存路由到正确的服务,而不是直接到实体框架。我的问题是在一些测试过程中,我们注意到 Breeze 在某些情况下似乎试图更新 sdf 文件。文件的大小似乎没有改变,但只是想在我们投入生产之前确保我们指向元数据的 sdf 文件不会在我们的服务器上增长。
谢谢你真的很喜欢使用微风。