我之前没有使用Entity Framework或泛型,并且在减少代码方面遇到了一些困难.
我正在解析一个文本文件来加载10个查找表,其中的数据可能会在每晚更改.文本文件具有"类型"的标题,后跟键/值集的列表.我有这个完美的工作,但我想重构代码来清理它,并希望使用泛型方法来实现这一点,所以我可以减少重复的代码.
我已经解析为泛型方法,但我无法弄清楚如何以通用方式将实体添加到上下文中.我必须遍历每种类型的实体列表并将它们添加到上下文中:
void Main()
{
switch (line.ToUpper())
{
case "AREA":
{
List<Area> areaList = this.GetItems<Area>(file);
foreach (var element in areaList)
{
if (context.Area.Find(element.Id) == null)
{
context.Area.Add(element);
}
}
break;
}
case "CATEGORY":
{
List<Category> categoryList = this.GetItems<Category>(file);
foreach (var element in categoryList)
{
if (context.Category.Find(element.Id) == null)
{
context.Category.Add(element);
}
}
break;
}
}
}
private List<T> GetItems<T>(StreamReader reader) where T : ILookupData, new()
{
string line;
List<T> list = new List<T>();
while (reader.Peek() == ' ') …Run Code Online (Sandbox Code Playgroud)