我有問題,初始化數據到SQL Server精簡.sdf
數據文件中的.NET Web應用程序。數據初始化如何工作?
我有一個數據初始化類。
namespace R10491.Models
{
public class SampleData : DropCreateDatabaseAlways<LibraryEntities>
{
protected override void Seed(LibraryEntities context)
{
var categories = new List<Category>
{
new Category{Id=1, Name="Sci-fi"}
};
}
}
}
(用於測試目的,我使用的DropCreateDatabaseAlways
代替DropCreateDatabaseIfModelChanges
)
這個初始化類我在Global.asax.cs
文件稱:
protected void Session_Start()
{
System.Data.Entity.Database.SetInitializer(new R10491.Models.SampleData());
}
(再次用於測試目的我把它列在每屆會議開始)。
我的連接字符串定義:
<connectionStrings>
<add name="LibraryEntities"
connectionString="Data Source=C:\Users\Administrator\Documents\Visual Studio 2012\Projects\2OBOP3_KU1\R10491\App_Data\R10491_library.sdf;"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
但初始化不起作用 - 在SampleData
類中定義的表沒有創造,也不能被數據進行初始化。
是的,我錯過了,謝謝。但還有另外一個問題。當我刪除.sdf文件並運行我的應用程序不會創建。自衛隊數據文件,是應該的,不是嗎?這與我的原始問題有關,這個初始化過程如何工作。 – Artegon
是的......它應該在您重新啓動應用程序後自動創建,它會檢測到'.sdf'不再存在。通常這個文件是在'\ App_Data'文件夾中創建的。 –
但在我的情況下,不創建'.sdf'文件。是否有必要進行修改或像它這樣的想法?問題應該在哪裏?感謝您的任何建議,我搜索了一個小時,我不知道問題出在哪裏。也許是我的ConnectionString的問題 - 我定義文件位置爲完整路徑(許多教程使用另一種語法)。 – Artegon