C# 无法使用EF6插入\更新
我正在创建一个ASP.NETMVC应用程序,我创建了一个新的控制台应用程序,这样我就可以传递一些参数,并在MVC应用程序中使用DataContext,这样我就不必不断重复自己的操作 这是我正在使用的代码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
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文件中的连接字符串
所以总结一下,
db.AvailableDates.Add(availableDate);
如果你能提供一些关于我需要做什么的见解,而不必不断重复我自己,在我打算使用它的任何地方添加连接字符串,除非我真的必须重复我自己你可以在你的EntityFramework项目中有一个常量或嵌入的资源或任何包含连接字符串的东西。但是我k、 这不是一个好的做法,每个正在执行的项目都应该有自己的配置。标准,连接字符串需要在启动项目的de-config文件中。在控制台应用程序的情况下。被引用项目的配置将被忽略。在本地配置中添加一个
MyDBContext
。复制您的连接字符串从App.Config转到Web.Config(或启动项目)我想可能是这样的……我复制了它,但想知道是否有其他方法可以使用。NET配置系统通常使用单个配置文件,默认名称为ApplicationName.exe.config
,它是从C#项目中的App.config
创建的。因此,您的控制台applic仅从该项目的App.config
中配置配置,而不是从其他项目中的任何其他配置文件。ASP.NET使用了一个更复杂的模型,其中配置文件是web.config
文件的层次结构。我想可能是这样的