Problem with mapping nullable column (Oracle Provider)
Posted: Fri 07 Sep 2018 08:36
I'm starting with Database First mapping (Devart Oracle Provider 9.6.584.0 - licensed) and I'm facing to interesting error. Edml model is generated correctly, properties which should be nullable are set to nullable on Classes part and also on Store part, but Desinger code contains those properties as not null types and that causes runtime errors when I'm trying to execute a query.
What am I doing wrong?
Oracle table example:
Part of Desinger code as an example:
What am I doing wrong?
Oracle table example:
Code: Select all
create table ORDERS
(
ID NUMBER not null,
ORG_ID NUMBER(10) not null,
ORDER_NUMBER NUMBER(10) not null,
PARTNERS_ID NUMBER(10),
TIME_PASS_PLANNED INTERVAL DAY(2) TO SECOND(0),
ROUTES_ID NUMBER(10)
)
Code: Select all
[EdmScalarPropertyAttribute()]
[DataMemberAttribute()]
public virtual global::System.Decimal PARTNERS_ID
{
get
{
global::System.Decimal value = _PARTNERS_ID;
OnGetPARTNERS_ID(ref value);
return value;
}
set
{
if (_PARTNERS_ID != value)
{
OnPARTNERS_IDChanging(ref value);
ReportPropertyChanging("PARTNERS_ID");
_PARTNERS_ID = StructuralObject.SetValidValue(value);
ReportPropertyChanged("PARTNERS_ID");
OnPARTNERS_IDChanged();
}
}
}
private global::System.Decimal _PARTNERS_ID;
partial void OnGetPARTNERS_ID(ref global::System.Decimal value);
partial void OnPARTNERS_IDChanging(ref global::System.Decimal value);
partial void OnPARTNERS_IDChanged();
[EdmScalarPropertyAttribute()]
[DataMemberAttribute()]
public virtual global::System.TimeSpan TIME_PASS_PLANNED
{
get
{
global::System.TimeSpan value = _TIME_PASS_PLANNED;
OnGetTIME_PASS_PLANNED(ref value);
return value;
}
set
{
if (_TIME_PASS_PLANNED != value)
{
OnTIME_PASS_PLANNEDChanging(ref value);
ReportPropertyChanging("TIME_PASS_PLANNED");
_TIME_PASS_PLANNED = StructuralObject.SetValidValue(value);
ReportPropertyChanged("TIME_PASS_PLANNED");
OnTIME_PASS_PLANNEDChanged();
}
}
}
private global::System.TimeSpan _TIME_PASS_PLANNED;
partial void OnGetTIME_PASS_PLANNED(ref global::System.TimeSpan value);
partial void OnTIME_PASS_PLANNEDChanging(ref global::System.TimeSpan value);
partial void OnTIME_PASS_PLANNEDChanged();