我的表架构(摘录)
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
)。
那应该怎么做呢?