我正在构建通用共享点 DALL,所以我需要帮助。我不知道这是否适用,但从逻辑上讲它必须是。
我的问题是我的 gr8 TTL 不确定他需要使用的数据源是什么:S(SQL 或 SharePoint 列表),他需要开始项目的开发。
所以我需要构建 DAL,因为 SP 列表是我的数据源,所以未来的变化将是最小的。
现在我拥有的是 baseDAL,其中包括所有常见操作,如删除、getAll 等
myBase dal 类现在类似于
public class BaseDAL<T> where T : BaseInfo,new()
{
public virtual List<T> GetAllItem()
{
//code to read from any data source and return data
}
public virtual Boolean Delete(T entity)
{
int entityID = ((BaseInfo)entity).ID;
deleteEntity(entityID);
}
}
我将 baseInfo 类作为主要业务对象实体。
假设我有两个业务实体(员工、学生)和两个 DAL,一个用于员工,一个用于学生
所以我在想的是在 getAllItem 中实现代码,它根据 T 类型返回所有项目,所以代码在 baseDAL 中可能看起来像波纹管
public virtual List<T> GetAllItem()
{
SPListItemCollection items = //code to read from list please note that list name saved in baseInfo object
T.getBusinessListItems(items); //toList
}
在 EmployeeDAL 中,我在 SPListItemCollection 到业务实体之间实现了一个映射器函数,代码将与此类似
public virtual List<Employee> getBusinessListItems(SPListItemCollection items)
{
//loop the items and fill them in list of employee objects
return list<Employee>
}
希望这能澄清情况,我不知道这是否是写作方式,我不是一个技术人员。如果有其他方法可以做到这一点,请帮忙。