0

想要弄清楚我们是如何实现元数据的。

我们的 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 文件不会在我们的服务器上增长。

谢谢你真的很喜欢使用微风。

4

1 回答 1

0

如果您使用 .sdf 文件的唯一目的是返回元数据,那么 Breeze 只会从与您的数据库关联的 ObjectContext 或 DbContext 中提取“edmx”。我的猜测是,只是旋转上下文的行为导致 EF“修改”“sdf”文件。Breeze没有直接接触数据库。

于 2013-08-16T17:58:52.517 回答