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