具有多个数据源时存储库方法的实现
Implementation of repository method when having multiple datasources
我正在从 CSV 文件中读取数据并将其放入关系数据库。
如果我要使用存储库模式,我应该如何实现 GetAll 方法?
它应该 return 来自数据库还是来自 CSV 文件的所有数据?
提前致谢!
你会有这样的界面:
public interface IRepository
{
IEnumerable<MyModel> GetAll();
void Save(IEnumerable<MyModel> data);
}
那么,您将拥有:
public class CsvRepository: IRepository
{
IEnumerable<MyModel> GetAll()
{
// data from Csv
}
void Save(IEnumerable<MyModel> data)
{
// save to csv
}
}
public class DbRepository: IRepository
{
IEnumerable<MyModel> GetAll()
{
// data from db
}
void Save(IEnumerable<MyModel> data)
{
// save to db
}
}
然后你可以这样做:
var csv = new CsvRepository();
var db = new DbRepository();
db.Save(csv.GetAll());
我正在从 CSV 文件中读取数据并将其放入关系数据库。
如果我要使用存储库模式,我应该如何实现 GetAll 方法? 它应该 return 来自数据库还是来自 CSV 文件的所有数据?
提前致谢!
你会有这样的界面:
public interface IRepository
{
IEnumerable<MyModel> GetAll();
void Save(IEnumerable<MyModel> data);
}
那么,您将拥有:
public class CsvRepository: IRepository
{
IEnumerable<MyModel> GetAll()
{
// data from Csv
}
void Save(IEnumerable<MyModel> data)
{
// save to csv
}
}
public class DbRepository: IRepository
{
IEnumerable<MyModel> GetAll()
{
// data from db
}
void Save(IEnumerable<MyModel> data)
{
// save to db
}
}
然后你可以这样做:
var csv = new CsvRepository();
var db = new DbRepository();
db.Save(csv.GetAll());