0

AccountNumberプロパティを使用してEFCodeFirstで定義されたCustomerエンティティがあります。AccountNumberを使用して1人の顧客を問題なく取得および更新できます。しかし、すべての顧客を取得すると、AccountNumberはしばらくの間古く、変更後に最終的に更新されます。データベースは常に正しいAccountNumber値を返します。

SQLServerのプロファイルを作成しましたが、すべての顧客を取得するための呼び出しがデータベースに到達し、最新の値が返されますが、DbContextからの応答で古いAccountNumberが返されます。したがって、EFCFが私のデータをキャッシュしているようです。

助けてください。

更新:コード例-

        public IQueryable<Customer> GetCustomers()
    {
        return this.acmeDbContext.Customer
            .Include(x => x.IpAddressRange)
            ;
    }

    public Customer GetCustomer(Guid id)
    {
        var Customer = this.acmeDbContext.Customer
            .Include(x => x.Contacts)
            .Include(x => x.IpAddressRange)
            .OrderByDescending(x => x.Id)
            .FirstOrDefault(x => x.CustomerId == id);
        return Customer;
    }
    public void SaveCustomer(Customer Customer)
    {
        this.acmeDbContext.SaveChanges();
    }
4

1 に答える 1

0

最終的に Reload メソッドを使用して各顧客をリロードしました。

        if (noCache)
            customers.ToList().ForEach(x => acmeDbContext.Entry(x).Reload());
于 2012-06-26T15:09:36.450 に答える