Ben bir Oracle 10g veritabanı ile EF 4 (veritabanı ilk, tam olarak oluşturulan model) kullanarak kullanıyorum ve bir alanda bir sorunum var.Int32'yi Oracle numarası (5) ile EF4'e dönüştürün.
Benim alan veritabanımda NUMBER(5)
olarak tanımlandı. Modelimde EF, bunu short
olarak tanımladı. Benim sorunum, 32767'den büyük (azami bir kısa) 'dan daha büyük değerlere sahip olduğum bu iletiyi buldum: Entity Framework generates short instead of int. Talimatı takip ediyorum ve işe yarıyor, modelim şimdi Int32 değerlerini içeriyor.
Error 2019: Member Mapping specified is not valid. The type 'Edm.Int32[Nullable=True,DefaultValue=]' of member 'XX' in type 'Model.XXX' is not compatible with 'OracleEFProvider.number[Nullable=True,DefaultValue=,Precision=5,Scale=0]' of member 'XX' in type 'Model.Store.XXX'.
Bu hata her zaman Visual Studio Hata Listesi sekmesinde gösterilecek olan:
Ama yeni bir sorun var. Ancak, başarı oluşturmak ve yarım çalışır: 99999 (edit bakınız)
mi -31073 dönüştü:
- veritabanında bir değer
- çalışmayan bir değer yazmaya çalışıyor okumak Her iki yolda da çalışması için bir çözüm var mı?
BTW, Oracle INTEGER alanları için int32 kullanılmasını öğeye bildirmenin bir yolu var mı? Varsayılan olarak ondalık kullanır. Benim değeri -31073 neden
DÜZENLEME
adım adım debuging, ben buldum. Bu hattı unuttum: My iki değer int idi
dao.Value = (short)dto.Value;
ama kısaca örtük dönüştürme kökenli idi.
Number için 'decimal' işlevini kullanır çünkü Number, _12.433242_ tamsayı bu değeri tutabilir. Neyse, sorunuzla ilgili olarak, resmi bir cevap için Oracle ile iletişime geçmeyi denediniz mi? – gdoron
Oracle 11g için Oracle Data Provider kullandınız mı? EF 4'ü Oracle 11g için ODP ile kullanıyorum ve Oracle INTEGER ile sorunum yok. –