C#通用Excel阅读器和实体框架

时间:2014-07-22 20:04:20

标签: c# entity-framework

我有多个项目,我在其中读取excel文件,并将内容放入数据库。我该怎么做这个通用的?我可以在app.config中将实体名称和对象类型指定为字符串,而不是让AddContentsToDatabase引用特定的实体和特定类型吗?

我查看了存储库模式的示例,但无法正确引用dbContext。

代码不同的部分是:

private void AddContentsToDatabase()
{
   using(var db = new xEntities())
   {
     foreach (var k in MyObjectDictionary.Keys)
      {
       MyObject thisO = new MyObject();
       db.Add(thisO);
      }

     db.SaveChanges();
   }
}

1 个答案:

答案 0 :(得分:0)

在App.config中

<add key="DataParserName" value="XReader" />

在Program.cs中

static void Main()
{            
  var dependency = GetCorrectDataParser();
  dependency.Run()
}

    private static IDataParser GetCorrectDataParser()
     {

        try
          {
           var classToCreate = ConfigurationManager.AppSettings["DataParserName"];
           var type = Type.GetType(classToCreate);
            if (type == null) return null;

           var dependency = (IDataParser) Activator.CreateInstance(type);
            return dependency;
           }
       catch (Exception ex)
       { throw ex;}
           return null;
      }

在XReader类中有适当的文件解析并将信息放入数据库。

当要解析另一种不同类型的Excel文件时,在App.config等中将XReader更改为YReader。为YReader创建类。