我尝试使用Entity Framework将新项目添加到我的数据库中,但在使用SaveChanges()后,我没有在数据库中拥有此项目。
我的程序中有2个线程,并且始终使用using语句在数据库中执行某些操作。 (我读过这是线程安全的)。
来自表的数据正在数据网格视图中显示,我可以在添加后看到新项目,但在关闭Visual Studio后,所有更改都会消失(数据库中没有更改)。
我添加新项目的代码:
using (var context = new dbEntities())
{
Operation myOperation = new Operation { DateTime = DateTime.Now, DelayTime = 10, RepeatCount = 10, RepeatTime = 10, Type = 10, DayOfWeek = 9999999 };
context.Operation.Add(myOperation);
context.SaveChanges();
}
这是基本的,应该可行,但我不知道为什么它不起作用。你能帮我解决这个问题吗?
绑定数据:
List<Operation> myListOfOperation = new List<Operation>();
using (var myDb= new dbEntities())
{
myListOfOperation = myDb.Operation.ToList();
}
m_GridView.Items.Clear();
foreach (var myTempTask in myListOfOperation)
{
m_GridView.Items.Add(myTempTask);
}
我在MainWindow构造函数中创建新对象并在此构造函数中运行新线程。 线程中的功能:
while (true)
{
if (m_OperationInQueue.Count == 0)
{
UpdateQueue();
}
else if (m_GenerateQueue == true)
{
System.Threading.Thread.Sleep(5 * 1000);
}
else
{
TimeSpan myTimeToWait = m_OperationInQueue.First().DateTime - DateTime.Now;
if (myTimeToWait.TotalMinutes < 0)
{
DoOperation(m_OperationInQueue.First());
m_OperationInQueue.RemoveAt(0);
}
else if (myTimeToWait.TotalMinutes > 5)
{
Thread.Sleep(4 * 60 * 1000);
}
else
{
Thread.Sleep(myTimeToWait);
DoOperation(m_OperationInQueue.First());
m_OperationInQueue.RemoveAt(0);
}
}
}
我尝试在DoOperation功能中添加新项目