C# 无法使用EF6插入\更新

C# 无法使用EF6插入\更新,c#,asp.net-mvc,entity-framework-6,console-application,C#,Asp.net Mvc,Entity Framework 6,Console Application,我正在创建一个ASP.NETMVC应用程序,我创建了一个新的控制台应用程序,这样我就可以传递一些参数,并在MVC应用程序中使用DataContext,这样我就不必不断重复自己的操作 这是我正在使用的代码 using mySite.WebSite.DataModel; namespace mySite.AvailabilityManager { class Program { public static List<DateTime>Availability = new Li

我正在创建一个ASP.NETMVC应用程序,我创建了一个新的控制台应用程序,这样我就可以传递一些参数,并在MVC应用程序中使用DataContext,这样我就不必不断重复自己的操作

这是我正在使用的代码

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();
            }
        }


    }
}
使用mySite.WebSite.DataModel;
命名空间mySite.AvailabilityManager
{
班级计划
{
公共静态列表可用性=新列表();
静态void Main(字符串[]参数)
{
var startingDt=转换到当前时间(“04-09-2015 08:00:00”);
var endingDt=转换到当前时间(“04-09-2015 17:00:00”);
CreateAvailability(开始日期、结束日期);
AddAvailabilityToDatabase();
}
公共静态void createAvailability(日期时间开始日期、日期时间结束日期)
{
var hoursDiff=结束差减去(开始差);
对于(int i=0;inew availableDate{DateAvailable=date}))
{
db.availableDate.Add(availableDate);
db.SaveChanges();
}
}
}
}
当我到达
db.AvailableDates.Add(..)
时,我得到了这个错误

在应用程序配置文件中找不到名为“MyDBContext”的连接字符串

我的印象是,因为我使用的是来自MVC应用程序的引用,并且连接字符串位于ASP.Net MVC配置文件中,所以我不必为控制台应用程序重复app.config文件中的连接字符串

所以总结一下,

  • 我的控制台应用程序中有MVC项目引用
  • 由于在
    db.AvailableDates.Add(availableDate);
  • 正在将mySite.Website程序集拉入我的bin调试文件夹

  • 如果你能提供一些关于我需要做什么的见解,而不必不断重复我自己,在我打算使用它的任何地方添加连接字符串,除非我真的必须重复我自己

    你可以在你的EntityFramework项目中有一个常量或嵌入的资源或任何包含连接字符串的东西。但是我k、 这不是一个好的做法,每个正在执行的项目都应该有自己的配置。

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

    在本地配置中添加一个
    MyDBContext
    。复制您的连接字符串从App.Config转到Web.Config(或启动项目)我想可能是这样的……我复制了它,但想知道是否有其他方法可以使用。NET配置系统通常使用单个配置文件,默认名称为
    ApplicationName.exe.config
    ,它是从C#项目中的
    App.config
    创建的。因此,您的控制台applic仅从该项目的
    App.config
    中配置配置,而不是从其他项目中的任何其他配置文件。ASP.NET使用了一个更复杂的模型,其中配置文件是
    web.config
    文件的层次结构。我想可能是这样的