C# 如何将实体框架添加到控制台应用程序(包括图像)
我尝试将实体框架添加到控制台应用程序: 我按“添加新项目”并 然后 然后 然后我添加了代码:C# 如何将实体框架添加到控制台应用程序(包括图像),c#,asp.net,database,entity-framework,objectcontext,C#,Asp.net,Database,Entity Framework,Objectcontext,我尝试将实体框架添加到控制台应用程序: 我按“添加新项目”并 然后 然后 然后我添加了代码: class Program { static void Main(string[] args) { try { Database1Entities db = new Database1Entities(); db.AddToTable
class Program
{
static void Main(string[] args)
{
try
{
Database1Entities db = new Database1Entities();
db.AddToTableTest(new TableTest { name = "name" });
db.SaveChanges();
int count = db.TableTest.Count();
int ui = 9 + 0;
}
catch (Exception e)
{
}
}
}
它没有给出任何错误,但我看不到数据库中有任何更改。
我更好地描述了这个问题我执行了与设置EF模型相同的步骤。您的
database.mdf
文件的Copy to Output目录
设置为Copy always
,这意味着每次点击F5(构建或调试应用程序)时,该文件都会被项目上的空文件替换
更改mdf文件属性窗口上的复制到输出目录
,应该可以解决您的问题
如果使用Copy If newer
,则将保留对数据库内容的任何修改,直到编辑数据库(mdf)本身
使用请勿复制
对mdf文件的任何更改都不会反映在您的应用程序中,并且可能会导致EF出现问题
在这种情况下,我建议您使用
Copy if newer
,并将基本数据填入mdf文件中,这样您就可以始终使用它。如果您接受异常,您如何知道它不会出错?您应该让它出错,直到您确定它正常工作为止。如果您有一个try/catch
,那么您只能在catch块中找到异常。如果你根本没有它,但是你正在调试,你会在出错的那一行找到关于它的信息,这样你就可以看到它出了什么问题。(VS中有更改此行为的选项,但这是默认设置)mdf数据库文件是否已复制到输出目录?也许每次你按F5时它都会被替换。“int count”是否总是返回1?我尝试了不同的组合,如果更新,也会复制。但当我关闭和数据库的连接并刷新它时,count仍然=1刷新它是什么意思?请使用类似的东西粘贴您的结果:结果很简单。如果我只按F5 5次,count=5。但若我关闭项目并打开它,然后按F5,则计数将为=1。所以我认为,你们是对的,数据库被新的数据库取代了。但如何阻止它呢?只需对mdf文件使用“请勿复制”,但在对mdf进行更改时要注意这一点。您还可以修改连接字符串,使路径到达项目文件夹中的mdf文件,而不是bin文件夹中的mdf文件。类似于“../../database.mdf”而不是app.config上的“database.mdf”