Oracle 또는 SQL Server 데이터베이스에 배포 할 수있는 시스템에 Entity Framework 모델을 생성했습니다. 나는 EF 모델이 DB의 두 가지 (나는 공통의 CSDL 인 Oracle SSDL과 SQL Server SSDL을 가지고있다.)와 함께 작업 할 수 있었다. 정수에 문제가 있습니다. SQL Server에서 필드는 정수로 정의 될 수 있지만 오라클에서는 최대 정수가 유지 될 수 있도록 숫자 (10,0)로 정의됩니다.Entity Framework의 Oracle 및 SQL Server 모두 지원
EF는 SQL Server 모델에서는 Int32를 생성하지만 Oracle에서는 Int64를 생성합니다. 나는이 모든 필드를 Int64로 만들기 위해 CSDL을 변경해 보았습니다. 이것은 오라클에서는 잘 작동하지만 SQL Server에서는 그렇지 않습니다. 또한 SQL Server ssdl을 변경하여 해당 필드를 bigints로 만들었습니다.
은 내가 'INT32' 값으로 설정할 수 없습니다 '테이블 이름'에 다음과 같은 오류
나는 SQL 서버 DB에 INT 필드에 BIGINT에 할당 할 수 있다고 생각했을 것이다'PROPNAME'속성을 얻을. 당신은 'INT64'유형의 null이 아닌 값이 속성을 설정해야합니다
은/INT64은의 기회가 없기 때문에 데이터 손실.
내 통제 범위를 벗어난 DB 구조를 변경하지 않고이 문제를 해결하는 방법에 관해서는 누구나 아이디어가 있습니까?
감사합니다.
linq-to-entities 쿼리에서이 오류를 이미 보았습니다. EF는 암묵적인 변환을 어떻게 든 처리하지 않으므로 어디에서나 긴 값을 사용해야합니다. –