0

DB からすべての製品を取得するコードがあります。

using (var entities = new DataEntities())
        {
            var products = entities.Products.AsQueryable();
            if (!string.IsNullOrEmpty(nameFilter))
            {
                products = products.Where(o => o.Name.Contains(nameFilter));
            }
            var result = products.Select(ProductBuilder.CreateProductDto);
            return result.ToList();
        }

CreateProductDtoメソッド:

        public static ProductDto CreateProductDto(this Product product)
    {
        return new ProductDto
        {
            Id = product.Id,
            Name = product.Name,
            IsEnabled = product.IsEnabled,
            KeyPairDto = new KeyPairDto()
            {
                Id = product.KeyPair.Id,
                EncryptedPrivateExponent = product.KeyPair.EncryptedPrivateExponent,
                Modulus = product.KeyPair.Modulus,
                PublicExponent = product.KeyPair.PublicExponent,
            },
        };
    }

私の同僚のマシンでは問題なく動作します。しかし、次の内部例外で EntityCommandExecutionException を取得します。最初に閉じる必要があるこのコマンドに関連付けられた開いている DataReader が既にあります。アクセスしようとするとproduct.KeyPair

興味深いことにproduct.KeyPair、デバッガーを介して更新すると、正常に読み込まれます。

4

1 に答える 1

1

追加

MultipleActiveResultSets=true

エンティティ フレームワーク接続文字列内の接続文字列のプロバイダー部分 (つまり、データ ソース、初期カタログなどを定義する部分)

于 2013-03-28T08:31:17.313 に答える