>source

제 c# code는 다음과 같습니다.

double amount_dbl= double.Parse("0.00001167");
using (Crypto_Shuffler_Entities entities= new Crypto_Shuffler_Entities())
{
    double amount_dbl= double.Parse("0.00001167");
    var order= (from Order in entities.Orders
                 where Order.BTC_Address== "123" &
&
 double.Parse(Order.BTC_Amount)== amount_dbl
                 select Order).FirstOrDefault();
    if (order != null)
    {
    }
}

BTC_AmountSQL 서버에서 문자열입니다.
왜 이런 오류가 발생하는지 정말 모르겠습니다.

LINQ to Entities는 'Double Parse(System.String)' 메서드이며 이 메서드는 번역할 수 없습니다. 스토어 표현으로.

QUERY및 LINQ의 METHOD방식.

문제는 EF가 double.Parse()를 적절한 SQL로 변환할 수 없다는 것입니다. Order.BTC_Amount를 문자열 값("0.00001167")과 비교하는 것이 더 나을 것입니다. 이는 EF와 일반 방법 모두에서 작동해야 합니다.

phuzi2022-01-17 13:32:48

@phuzi 검사할 문자열에 선행 0이 있는 경우가 있습니다. 따라서 문자열과 비교하는 것은 좋은 생각이 아닙니다.

SilverLight2022-01-17 13:35:58

숫자를 데이터베이스에 문자열로 저장하는 것은 좋은 생각이 아닐 것입니다.

phuzi2022-01-17 13:40:01

SQL 서버가 다른 유형으로 0.00001167과 같은 양을 저장하기 때문에 그렇게했습니다.

SilverLight2022-01-17 13:45:31

두 경우 모두 문자열이 있을 때 왜 두 배로 구문 분석하는 것을 귀찮게 할까요? 문자열을 비교하고 선행/후행 0을 자르십시오.

Rand Random2022-01-17 13:46:34
  • 이전 php : 페이지에서 WP_Query 생성 충돌
  • 다음 javascript : Vuex 상태에서 App.vue의 "this" 키워드 설정