我的代码非常简单:
Context.AddObject("EntitiesSetName", newObjectName);
Context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
它工作正常,但只有一次 - 第一次.那个时候,在跟踪了SaveChanges()之后,我用Shift + F5中断了我的程序.这是一个调试过程,因此我手动从数据库中删除了新创建的记录,并在调试模式下再次运行程序.但它不再起作用 - 当调用SaveChanges()时它会"挂起".
我看到的另一个奇怪的事情:如果我在addObject()和SaveChanges()之前编写的内容如下:
var tempResult = (from mydbRecord in Context
where Context.myKey == 123
select mydbRecord.myKey).Count();
// 123 is the key value of the record that should be created before the program hangs.
Run Code Online (Sandbox Code Playgroud)
tempResult将具有下一个值:1.
因此,似乎创建了记录(当程序挂起时)并且现在存在,但是当我使用其他工具手动检查数据库时 - 它没有!
我做错了什么?是某种缓存问题还是其他什么?
编辑:
我找到了问题的根源.这根本不是EF问题,但这是我用来手动控制数据库(Benthic)的工具的问题.
当工具连接到同一个DB时,我的程序会陷入某种死锁状态(当我用SaveChanges()调用时).
所以,问题是在同步区域,imho,所以我的问题可以标记为已解决.
Ctrl所有 Windows 编辑程序都允许您通过按-来保存您的工作S。Linux 拥有一套独立开发的、与 Windows 中标准键盘快捷键基本不同的键盘快捷键集。我在编写 Matlab 时正在学习一些 Linux 快捷方式(通过 GUI,从 BASH 打开),但我找不到任何快捷方式来保存我正在使用的代码,相当于Ctrl- S。
有没有什么,或者在这个承载 Emacs 的操作系统中,它的键盘快捷键集中在根本不需要移动手上,这是通过将我的手移动到鼠标来保存代码的唯一方法?
我有这个手指绘画应用程序,我希望我的用户可以保存他们绘制的内容,以后再回来继续绘制。
什么是更简便的方法?
当我通过自动生成的 EF 从表单更新表时,如果因为我不想可编辑而从视图表单中删除一些数据列,则该列将更新为空值,如何避免这种行为?我在这里读到:实体框架:忽略列将其从模型中删除,但我并不总是想忽略这些数据列。
感谢!
首先,我应该提到这个问题只发生在Windows窗体应用程序中,并且Web模式下的相同程序(例如MVC3)完美无缺.
几天前,我使用Visual Studio 2010终极版和SQL Express数据库编写了一个非常简单的Windows窗体程序.我通过选择添加>新项>基于服务的数据库和基于该数据库的实体数据模型以相同的方式添加数据库.我使用Entity框架向表中添加一些新记录.我之前用VS 2008 SP1做过这样的事情没有问题,所以我做了同样的事情.程序编译并运行没有错误,我输入了一些新数据.退出程序后,我回到了数据库,没有发生任何事情.我输入的所有信息都没有保存.我一步一步地调试程序,一切都很好.下面的代码与一个带有上述问题的非常简单的程序有关.数据库有一个表(书):
namespace Book
{
public partial class BookForm : Form
{
BookDatabaseEntities db = new BookDatabaseEntities();
public BookForm()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{
Book bookToCreate = new Book();
bookToCreate.Id = Guid.NewGuid();
bookToCreate.Title = titleTextBox.Text;
db.Books.AddObject(bookToCreate);
db.SaveChanges();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人帮助我,我将非常感激.提前致谢.
.................
编辑后:
namespace Book
{
public partial class BookForm : Form
{
//BookDatabaseEntities db = new BookDatabaseEntities();
public BookForm()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{ …Run Code Online (Sandbox Code Playgroud) .net savechanges visual-studio-2010 entity-framework-4 windows-applications
学习asp.net mvc 3 + EF代码优先.我是两个新手.我的例子是微不足道的,但我仍然无法使其发挥作用.缺少一些简单而明显的东西......
我上课了:
public class Product
{
[HiddenInput(DisplayValue = false)]
public int ProductID { get; set; }
[Required(ErrorMessage = "Please enter a product name")]
public string Name { get; set; }
[Required(ErrorMessage = "Please enter a description")]
[DataType(DataType.MultilineText)]
public string Description { get; set; }
[Required]
[Range(0.01, double.MaxValue, ErrorMessage = "Please enter a positive price")]
public decimal Price { get; set; }
[Required(ErrorMessage = "Please specify a category")]
public string Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和a …
我试图寻找答案,但我不能精确定义这些术语,而不是一直在错误的线程下.
发生了什么: 无意中我已经选择了file.m中的所有代码并将其全部删除.它变成了一个完整的空白文件.当我按下Ctrl + Z来UNDO它时,xcode崩溃了.
问题: 当我重新打开xcode(崩溃后)时,文件仍然是空白的(它在崩溃之前的几秒钟自动保存为空白文档) - 丢失了我的所有代码.我无法使用UNDO来拯救我,因为它自动保存并崩溃.
我需要什么:在此自动保存/崩溃之前,有没有办法将我的文件恢复/恢复到以前的状态?
额外信息: 源代码管理:我无法使用它,因为最后一次"提交"是6月27日.
Time Machine:没有外置HD使用它.它被禁用了.
更新1:我按下"丢弃最后一次更改"按钮,文件.m恢复到6月27日保存的文件.所以,还有一个问题:到目前为止,所有工作都失去了.
更新2:我找到了解决方案,并在下面发布.但我需要等到明天接受它作为答案.
更新3:我已经重新编写了文本以澄清我的问题.
我正在尝试保存在Firefox Developer Edition 的Inspector 选项卡上完成的 CSS 更改。
据我所知,您只能将 css 保存在 Style Editor 选项卡中,但它不反映使用 Inspector Tool 所做的更改。
无论如何要在“检查器”选项卡的“样式编辑器”中编辑 css?
我想使用PHP在文件内容中搜索具有特定id的元素,替换其内容,然后将我的更改保存到文件中.我可以加载HTML,然后再将其保存回来,但是我遇到了'find and replace'(目前正在尝试使用preg_replace)的问题.
这是我到目前为止所拥有的:
<?php
// read in the content
$file = file_get_contents('file.php');
// parse $file, looking for the id.
$replace_with = "id='" . 'myID' . "'>" . $replacement_content . "<";
if ($updated = preg_replace('/id\=\"myID\"\>.*?\</', $replace_with, $file)) {
// write the contents of $file back to index.php, and then refresh the page.
file_put_contents('file.php', $updated);
}
Run Code Online (Sandbox Code Playgroud)
但是,虽然它成功加载内容并将其写出来(我已经通过写入单独的文件对其进行了测试),但似乎$ updated实际上并没有改变.
有任何想法吗?
我们假设我有以下代码:
TEModule teModule = Context.TEModules.Where(module => module.EnumValue.Equals(text.ModuleName)).FirstOrDefault();
if (teModule == null)
{
teModule = new TEModule();
teModule.EnumValue = text.ModuleName;
Context.TEModules.AddObject(teModule);
//Context.SaveChanges();
TEModule aux = Context.TEModules.Where(module => module.EnumValue.Equals(teModule.ModuleName)).FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我保持" SaveChanges "注释,那么在下一个查询中,aux对象始终为null,因为Context.TEModules为空,即使我调用" AddObject "方法也是如此.但是,如果我在AddObject之后调用SaveChanges,那么在下一个查询中,aux对象不为null.问题是我不想经常调用SaveChanges,因为这不是我添加对象的唯一代码片段,如果我这样做,性能会下降.
所以问题是:我是否必须在每次AddObject调用后调用SaveChanges,如果以后我需要知道对象是否已经存在?