Моя схема таблицы (отрывок)
create table dbo.MyEntity
(
MyEntityID int identity not null
primary key,
Name nvarchar(50) not null
unique,
Description nvarchar(500) null,
-- these two are optional fields
MaxCount int null,
MinSpace int null
)
Класс (ы) сущностей
[MapField("MaxCount", "Rule.MaxCount")]
[MapField("MinSpace", "Rule.MinSpace")]
public class MyEntity
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
// when values are not null this property should have an instance
public MyEntityRule Rule { get; set; }
public bool HasRule
{
get { return this.Rule != null; }
}
}
public class MyEntityRule
{
public int MaxCount { get; set; }
public int MinSpace { get; set; }
}
Проблема?
Проблема сопоставления полей с моим классом.Я хотел бы напрямую отобразить свойства внутреннего класса из плоского набора результатов, который приходит из таблицы данных (вверху).
Я установил MapFieldAttribute
настройки на уровне класса (как видно из верхнего кода), номои правила всегда нулевыеПредполагается, что частью проблемы является то, что это свойство внутреннего класса должно быть сначала создано, чтобы быть назначенным, потому что во всех примерах BLToolkit используются внутренние объекты, не допускающие значения NULL.Но в моем случае я не хочу создавать его экземпляр, если он должен быть null
(в большинстве случаев это будет null
).
Как это должно быть сделано тогда?