通常我认为这个代码是一个不错的设计:架构业务集合
看私人二传手的收集。所以没有人可以从schoolclass对象之外分配一个新的集合。
public class Schoolclass
{
public Schoolclass()
{
Pupils = new List<Pupil>();
}
public int SchoolclassId { get; set; }
public string SchoolclassCode { get; set; }
public List<Pupil> Pupils { get; private set; }
}
对于这种风格我的数据获取方法行不通了:
服务层做的SQLite的数据提供电话:
BL:
public IEnumerable<Schoolclass> GetAdministrationData()
{
var schoolclasses = adminDataProvider.GetSchoolclassList();
foreach (Schoolclass s in schoolclasses)
{
var pupils = adminDataProvider.GetPupilsBySchoolclassId(s.SchoolclassId);
s.Pupils = pupils;
foreach (Pupil p in pupils)
{
var documents = adminDataProvider.GetDocumentsByPupilId(p.Id);
p.Documents = documents;
}
}
return schoolclasses;
}
如果我有现在私人二传手上述汇总不起作用。
那么我还有其他的选择吗?或者我应该坚持我的装载技术?
我返回IEnumerable所以我不能这样做.AddRange() –
Elisabeth
2011-01-19 20:57:10
这不是你的代码示例:)你有其他的选择。延迟加载是我的选择,如果你的加载程序在同一个程序集中,那么内部私有的作用域可能会起作用。 – Neil 2011-01-19 21:19:27