Visual Web Developer。实体数据源模型。我有它创建新的数据库罚款。示例 创建SAMPLE1.MDF和SAMPLE1.LDF 当我运行我的应用程序时,它会创建另一个SAMPLE1_LOG.lDF文件。entity createdatabase ldf日志文件名更改默认如何
当我运行createdatabase时,有没有一个地方可以为日志文件指定_LOG.ldf? SQL 2008 R2。
它弄乱了,当我运行DeleteDatabase功能... 2个日志文件...
为什么不创建该文件SAMPLE1_Log.ldf下手,如果这是它在寻找。 ..
谢谢您的时间, 弗兰克
// database or initial catalog produce same results...
// strip the .mdf off of newfile and see what happens?
// nope. this did not do anything... still not create the ldf file correctly!!!
// sample1.mdf, sample1.ldf... but when run, it creates sample1_log.LDF...
newfile = newfile.Substring(0, newfile.Length - 4);
String mfile = "Initial Catalog=" + newfile + ";data source=";
String connectionString = FT_EntityDataSource.ConnectionManager.GetConnectionString().Replace("data source=", mfile);
// String mexclude = @"attachdbfilename=" + "|" + "DataDirectory" + "|" + @"\" + newfile + ";";
// nope. must have attach to create the file in the app_data, otherwise if goes to documents & setting, etc sqlexpress.
// connectionString = connectionString.Replace(mexclude, "");
Labeldebug2.Text = connectionString;
using (FTMAIN_DataEntities1 context = new FTMAIN_DataEntities1(connectionString))
{
// try
// {
if (context.DatabaseExists())
{
Buttoncreatedb.Enabled = false;
box.Checked = true;
boxcreatedate.Text = DateTime.Now.ToString();
Session["zusermdf"] = Session["zusermdfsave"];
return;
// Make sure the database instance is closed.
// context.DeleteDatabase();
// i have entire diff section for deletedatabase.. not here.
}
// View the database creation script.
// Labeldebug.Text = Labeldebug.Text + " script ==> " + context.CreateDatabaseScript().ToString().Trim();
// Console.WriteLine(context.CreateDatabaseScript());
// Create the new database instance based on the storage (SSDL) section
// of the .edmx file.
context.CreateDatabaseScript();
context.CreateDatabase();
}
拿出所有的尝试,赶上这样我就可以看到任何可能发生的......
================================================= =========================
粗糙的代码,同时制定出扭结..
连接字符串,它创建
metadata = res://*/FT_EDS1.csdl | res://*/FT_EDS1.ssdl | res://*/FT_EDS1.msl; provider = System.Data.SqlClient; provider connection string =“Initial Catalog = data_bac100;数据源=。\ SQLEXPRESS; attachdbfilename = | DataDirectory | \ data_bac100.mdf;集成安全性= True;用户实例= True; multipleactiveresultsets = True; App = EntityFramework“
在这个例子中,吃了就是“data_bac100.mdf”。 它创建data_bac100.mdf和data_bac100.ldf
当我真正使用这个文件和表格来运行,它自动创建data_bac100_log.LDF
1)试图只是不创建LDF,所以当系统运行,它只是创建一个关闭的球...
2)初始目录,和/或数据库关键字只被添加到连接字符串来运行createdatabase()..常规连接字符串在网络配置创建只有attachdbfilename的东西,并正常工作。
我有1个连接字符串为无限数据库,主数据库在web.config ..我使用基于用户角色,无论访客,成员,管理员,匿名或未经身份验证的初始化部分...它使用表达式构建器正确设置数据库,并使用正确的值解析连接字符串,以便数据库进行操作。这一切运行良好。
实体框架自动生成脚本。我曾尝试使用和不使用.mdf扩展名,并没有什么区别......想想也许有一个设置的地方,保存命名约定为ldf文件...
最终所有这一切都将无济于事,当开始尝试部署不使用APP_Data文件夹的地方...
下面是运行应用程序时创建的连接字符串示例 metadata = res://*/FT_EDS1.csdl | res://*/FT_EDS1.ssdl | res: //*/FT_EDS1.msl;provider=System.Data.SqlClient;provider connection string =“data source =。\ SQLEXPRESS; attachdbfilename = | DataDirectory目录| \ TDSLLC_Data.mdf;集成安全性=真;用户实例= TRUE; multipleactiveresultsets = TRUE;应用=的EntityFramework”
在这种情况下,使用TDSLLCData.mdf文件...
04/01/2012 ... ...后续实体 框架
功能 登录由ObjectContext.CreateDatabase方法
变化 当CreateDatabase方法是直接调用或通过使用代码创建的文件首先与SqlClie nt提供程序和连接字符串中的AttachDBFilename值,它会创建一个名为filename_log.ldf而不是filename.ldf(其中filename是由AttachDBFilename值指定的文件的名称)的日志文件。
影响。 此更改通过提供根据SQL Server规范命名的日志文件来改进调试。它应该没有意想不到的副作用。
http://msdn.microsoft.com/en-us/library/hh367887(v=vs.110).aspx
我在Windows XP在.NET 4中(不是.NET 4.5)......会寻找一些更多..不过貌似不能更改的问题。
2012年4月1日4:30 ... 好的,更多的狩猎和搜索以及我创建的数据库和数据库存在的一些不一致......所以.net 4.5应该添加_log.ldf ,而不仅仅是.ldf文件,所以他们必须解决这个由于某种原因....
发现其他人有相同的问题,但不同的服务器.... MySQL有一个EF4连接器,目前的版本是6.3.5及其主要功能运行良好,但仍有一些方法问题,例如 •System.Data.Objects.ObjectContext.CreateDatabase() •System.Data.Objects.ObjectContext.DatabaseExists() 这使得很难完全使用模型优先方法。可以通过手动编辑MySQL脚本(可以使用CreateDatabaseScript方法)。 MySQL团队似乎并不急于解决这些错误,我不确定他们的承诺水平实际上是什么,但它肯定低于以前的水平。这就是说,同样的方法也会因SQL CE而失败(它们没有实现,我没有看到MS团队很可能很快就会解决这个问题)。
跑出下方的空间...它只是当创建一个数据库,它不会创建_log.ldf文件,但只是LDF文件,然后使用该数据库成为一个问题,并创建一个_log.ldf文件...现在你有2个ldf文件..一个变得无效..然后当完成数据库,删除它,然后尝试创建一个新的,并且存在一个ldf,它将不起作用... 。
事实证明这仅仅是它与EF4的方式,以及他们与EF4.5公测改为创建_log.ldf文件以匹配使用数据库时怎样被创建。
感谢您的时间。
列出您的代码。 – RBarryYoung 2012-04-01 00:35:54