2015-09-04 67 views
1

我创建一个ASP.Net MVC应用程序,我创建了一个新的控制台应用程序插入\更新只是让我可以通过它的几个参数和使用的DataContext在MVC应用程序,使我没有不断重复自己。无法使用EF6

这是我使用

using mySite.WebSite.DataModel; 

namespace mySite.AvailabilityManager 
{ 
class Program 
{ 
    public static List<DateTime>Availability = new List<DateTime>(); 
    static void Main(string[] args) 
    { 
     var startingDt = Convert.ToDateTime("04-09-2015 08:00:00"); 
     var endingDt = Convert.ToDateTime("04-09-2015 17:00:00"); 
     CreateAvailabilty(startingDt, endingDt); 
     AddAvailabilityToDatabase(); 
    } 

    public static void CreateAvailabilty(DateTime startingDt, DateTime endingDt) 
    { 
     var hoursDiff = endingDt.Subtract(startingDt); 
     for (int i = 0; i < hoursDiff.Hours; i++) 
     { 
      Availability.Add(startingDt); 
      startingDt = startingDt.AddHours(1); 
     } 
    } 

    public static void AddAvailabilityToDatabase() 
    { 

     using (var db = new FitnessForAllContext()) 
     { 
      foreach (var availableDate in Availability.Select(date => new AvailableDate {DateAvailable = date})) 
      { 
       db.AvailableDates.Add(availableDate); 
       db.SaveChanges(); 
      } 
     } 


    } 
} 

代码当我到db.AvailableDates.Add(..)我得到这个错误

没有命名的连接字符串“MyDBContext”可以在应用程序配置文件中找到。

我的印象是,因为我使用从我的MVC应用程序的参考和连接字符串中,我不会有重复的连接字符串在我的app.config的ASP.Net MVC配置文件文件的控制台应用程序。

因此,要总结,

  1. 我有MVC项目refernece在我的控制台应用程序
  2. 这失败的,因为在db.AvailableDates.Add(availableDate);
  3. 缺乏一个连接字符串的mySite.Website组件被拉入我的箱子调试文件夹

如果你能提供一些见解,我需要做什么,而不必不断地重复自己的一个到处dding连接字符串我打算使用这个,除非我真的要重复自己

+1

在您的本地配置添加一个'MyDBContext'。 –

+0

从App.Config中复制连接字符串到Web.config中(或启动项目) – Lali

+0

我想这可能是这样的......抄袭了,但想知道是否有其他方法我可以使用。 –

回答

1

你可以有一个恒定的或在您的EntityFramework项目包含连接字符串嵌入资源或任何东西。但我认为,这不是一个好习惯,每个正在执行的项目都应该有自己的配置。

+0

我认为可能是这样 –

2

标准,连接字符串需要在启动项目的去配置文件。在这种情况下的控制台应用程序。被引用项目的配置被忽略。