6
var ps = dbContext.SplLedgers.Select(p => new SplLedgerModel
            {
                Name = p.Name,
                VoucherType = Convert.ToString(((JIMS.VoucherTypes)p.VoucherType))
        });

次の例外が発生しています。コードに問題があります。

JIMS.VoucherType は列挙型です

+       $exception  {"LINQ to Entities does not recognize the method 'System.String ToString(System.Object)' method, and this method cannot be translated into a store expression."}    System.Exception {System.NotSupportedException}
4

1 に答える 1

9

あなたのコードは基本的に DB で Convert.ToString() メソッドを見つけようとしており、当然のことながら失敗しています。

たとえば、選択の前にクエリが実行されるようにすることで、それを回避できます。

var ps = dbContext.SplLedgers.Select(p => new  
    { 
         Name = p.Name, 
         VoucherType = p.VoucherType
    }).ToList().Select(p => new SplLedgerModel( 
    { 
         Name = p.Name, 
         VoucherType = Convert.ToString(((JIMS.VoucherTypes)p.VoucherType)) 
    }); 
于 2012-09-28T14:44:34.353 に答える