wpf - Entity Framework - 从数据库刷新对象

标签 wpf database entity-framework objectcontext

我在刷新数据库中的对象时遇到问题。我有两台 PC 和两个应用程序。

在第一台 PC 上,有一个应用程序与我的数据库通信并将一些数据添加到测量表。 在我的另一台 PC 上,有一个应用程序可以在计时器下检索最新的测量值,因此它也应该检索我的第一台 PC 上的应用程序添加的测量值。

问题是它没有。在我的应用程序启动时,它会缓存数据库中的所有数据,并且永远不会添加新数据。我使用 Refresh() 方法,当我更改任何缓存数据时该方法运行良好,但它不会刷新新添加的数据。

这是我应该更新数据的方法:

    public static Entities myEntities = new Entities();

    public static Measurement GetLastMeasurement(int conditionId)
    {
        myEntities.Refresh(RefreshMode.StoreWins, myEntities.Measurements);

        return (from measurement in myEntities.Measurements
                where measurement.ConditionId == conditionId
                select measurement).OrderByDescending(cd => cd.Timestamp).First();
    }

附言 应用程序在 app.config 中具有不同的连接字符串(同一数据库的不同帐户)。

最佳答案

这应该有效:

public static Entities myEntities = new Entities();

public static Measurement GetLastMeasurement(int conditionId)
{
    myEntities.Refresh(RefreshMode.StoreWins, myEntities.Measurements);
    var allMeasurements = myEntities.Measurements.ToList();//retrieves all measurements from database

    return (from measurement in allMeasurements
            where measurement.ConditionId == conditionId
            select measurement).OrderByDescending(cd => cd.Timestamp).First();
}

当您每次要使用它时刷新存储时,缓存有什么意义?您可以将其更改为:

public Measurement GetLastMeasurement(int conditionId)
{
    var entities = new Entities();
    return (from measurement in entities.Measurements
            where measurement.ConditionId == conditionId
            select measurement).OrderByDescending(cd => cd.Timestamp).First();
}

它还会在每次调用时在数据库中查找,但操作要少得多。

关于wpf - Entity Framework - 从数据库刷新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2564265/

相关文章:

wpf - 无法在分层数据模板 WPF 内的组合框上使用附加属性

database - 关于连接到 Postgres 数据库的首选方式的问题

mysql - 将 SQL 查询的结果限制为某一列的一个结果

php - 如果出现任何通知,如何限制 MySQL/PHP 插入数据?

C# Entity Framework ,简化选择使用相同条件的子属性

.net - 如何使用 Entity Framework 实现 table-per-concrete-type 策略

wcf - Entity Framework ,多个 edmx 共享连接字符串 - 可能吗?

c# - 死掉的简单 MVVM 应用程序的列表框保持为空 - 我错过了什么?

wpf - 如何以编程方式访问数据网格行详细信息控件

c# - 在 WPF 数据绑定(bind)中使用和、或等组合 bool 值