理想情況下,應儘可能集中所有內容。這可以通過爲每個子集創建一個查詢對象來完成。我認爲如果你的數據庫允許這些特定字段的空值,你可以用任何方式返回帶有填充字段的返回對象或者空值。
因此,將您的規則和邏輯與存儲庫類集中在一起,以便每個對象都基於這些規則和邏輯一致地返回。
爲您的對象創建一個下屬模式,這樣它們不會太複雜。我認爲需要爲存儲庫考慮每個對象的實體。同樣,創建自定義對象或DTO可能會產生不必要的代碼和複雜性。爲了保持完整性,請將對象填充一些填充的字段,將其中不需要的其他對象填充爲null,這樣,如果稍後查詢此信息,則可以將信息報告回來,該值對於特定實體不存在。
下面是一個簡單的例子,嘗試在實體框架中使用POCO類。 POCO類
public interface IRepository<TEntity, in TKey> where TEntity : class
{
TEntity Get(TKey id);
}
public class SomeRepo1 : IRepository
{
private readonly FileDbContext someDbContext;
public FileRepository(FileDbContext dbContext)
{
someDbContext = dbContext;
}
public File Get(string id)
{
return someDbContext.Files.ToList();
}
}
的例子,可以用於文件:
public class File
{
public int Id { get; set; }
public string FileName { get; set; }
}
public class Folder
{
public List<File> Files { get; set; }
}
更多細節在這裏:https://msdn.microsoft.com/en-us/library/ff649690.aspx
希望這有助於!
只是一個想法。您的庫中,應當永遠返回一個'DataSet'。他們應該返回像波科一樣的東西。 poco應該匹配TableStructure。像ORM-Mapper或EntityFramework可能會有所幫助 – lokusking