2016-10-28 73 views
1

我正在使用控制台应用程序将数据插入到项目文件夹中App_Data文件夹和.edmx文件中的.mdf文件中。为什么实体框架没有向.mdf文件插入数据?

下面的代码与mvc相同,但不是控制台应用程序。

表是:

CREATE TABLE [dbo].[tbLegalDetails] (
[LegalStatusId]   INT   NOT NULL, 
[LegalStatusName]   TEXT   NULL, 
[LegalStatusHeading]  TEXT   NULL, 
[PatentOfInvention]  NVARCHAR (100) NULL, 
[EventCode]    VARCHAR (100) NULL, 
[EventExplination]  TEXT   NULL, 
[CCOfCorrespondingPatent] NVARCHAR (100) NULL, 
[CorrespondingPatentD] INT   NULL, 
PRIMARY KEY CLUSTERED ([LegalStatusId] ASC) 
); 

代码中插入数据:

ConsoleApplication__DynamicWebBrowserDatabaseEntities db = new ConsoleApplication__DynamicWebBrowserDatabaseEntities(); 
List<tbLegalDetail> hLegalDetaili = db.tbLegalDetails.ToList(); 

[Here count is shown as 0] 

tbLegalDetail tbLegalDetail = new tbLegalDetail(); 
tbLegalDetail.LegalStatusId = 3; 
tbLegalDetail.LegalStatusName = "INPADOC legal"; 
tbLegalDetail.LegalStatusHeading = "COMPOSITIONS ANDAPY"; 
tbLegalDetail.PatentOfInvention = "2003287377"; 
tbLegalDetail.EventCode = "FGA"; 
tbLegalDetail.EventExplination = "LETTSTANDARD PATENT"; 
tbLegalDetail.CCOfCorrespondingPatent = "dfs"; 
tbLegalDetail.CorrespondingPatentD = 1212; 
db.tbLegalDetails.Add(tbLegalDetail); 
db.SaveChanges(); 
List<tbLegalDetail> hLegalDetail = db.tbLegalDetails.ToList(); 

[Here count is shown as 1] 

Console.ReadLine(); 

,但是当我看着.mdf文件我不能看到添加的行。 当我再次运行时,我会显示计数为0.

请帮忙。

+0

抛出的任何错误?如果是EF6,请查看生成的SQL,在插入之前使用它并查看调试控制台:db.Database.Log = Console.Write; – Oscar

+0

不会抛出任何错误或异常。唯一的区别是它说当我尝试创建.edmx文件时它说:“您选择的连接使用不在当前项目中的本地数据文件。是否要将其复制到项目中。”虽然.mdf文件在App_Data文件夹中,但我没有在MVC中获得。 –

+2

通常的原因是,当您构建项目并使用此副本时,您正在将mdf复制到输出文件夹。 – sgmoore

回答

1

我回答这个问题形成的@sgmoore和@vipin给出的意见。

我更改了| DataDirectory |在App.config文件中的连接字符串中,以完整路径解决了问题

谢谢。