无法使用 EF6 插入\更新
Unable to Insert \ Update using EF6
我正在创建一个 ASP.Net MVC 应用程序,我已经创建了一个新的控制台应用程序,这样我就可以向它传递一些参数并在 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();
}
}
}
}
当我到达 db.AvailableDates.Add(..)
时,出现此错误
No connection string named 'MyDBContext' could be found in the application config file.
我的印象是,因为我使用的是来自我的 MVC 应用程序的引用,并且连接字符串位于 ASP.Net MVC 配置文件中,所以我不必在 [=] 中重复连接字符串36=] 控制台应用程序的文件。
所以,总结一下,
- 我的控制台应用程序中有 MVC 项目引用
- 由于
db.AvailableDates.Add(availableDate);
处缺少连接字符串而失败
- mySite.Website 程序集正在被拉入我的 bin 调试文件夹
如果您可以提供一些关于我需要做什么的见解,而不必通过在我打算使用它的任何地方添加连接字符串来不断重复自己,除非我真的必须重复自己
您的 EntityFramework 项目中可以包含常量或嵌入式资源或任何包含连接字符串的内容。但我认为,这不是一个好习惯,每个执行项目都应该有自己的配置。
标准,连接字符串需要在启动项目的de config文件中。在本例中是控制台应用程序。引用项目的配置被忽略。
我正在创建一个 ASP.Net MVC 应用程序,我已经创建了一个新的控制台应用程序,这样我就可以向它传递一些参数并在 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();
}
}
}
}
当我到达 db.AvailableDates.Add(..)
时,出现此错误
No connection string named 'MyDBContext' could be found in the application config file.
我的印象是,因为我使用的是来自我的 MVC 应用程序的引用,并且连接字符串位于 ASP.Net MVC 配置文件中,所以我不必在 [=] 中重复连接字符串36=] 控制台应用程序的文件。
所以,总结一下,
- 我的控制台应用程序中有 MVC 项目引用
- 由于
db.AvailableDates.Add(availableDate);
处缺少连接字符串而失败
- mySite.Website 程序集正在被拉入我的 bin 调试文件夹
如果您可以提供一些关于我需要做什么的见解,而不必通过在我打算使用它的任何地方添加连接字符串来不断重复自己,除非我真的必须重复自己
您的 EntityFramework 项目中可以包含常量或嵌入式资源或任何包含连接字符串的内容。但我认为,这不是一个好习惯,每个执行项目都应该有自己的配置。
标准,连接字符串需要在启动项目的de config文件中。在本例中是控制台应用程序。引用项目的配置被忽略。