簡體   English   中英

實體框架代碼優先與非用戶實例

[英]Entity Framework Code First with non-user instance

這些是我使用Entity Framework Code First工作流程的第一步,所以也許我缺少一些簡單的東西。 我創建了從DbContext繼承的上下文類

public class Context : DbContext
{
    public DbSet<Book> Books { get; set; }
    public DbSet<Author> Authors { get; set; }
}

然后在控制器代碼中執行它:

var author = new Author()
{
  FirstName = "Julia",
  LastName = "Lerman"
};

using (var context = new Context())
{
  context.Authors.Add(author);
  context.SaveChanges();
}

我沒有為EF設置的其他代碼或配置。 當我啟動應用程序並在控制器中命中代碼時,一切正常,唯一的問題是數據庫實際上不是在SQL Server中創建的,而是在本地運行的。 這意味着我無法在應用程序運行時真正使用SQL Server Management Studio來檢查數據,而我想這樣做。

我發現在web.config中自動添加了以下鍵:

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=false;" providerName="System.Data.SqlClient" />

如何修改此配置鍵(或還有其他需要做的事情)以確保該數據庫將在實際的SQL Server Express而不是進程內運行?

好的,我想通了,這要歸功於《編程實體框架:代碼優先》一書,顯然這是配置方案的約定,要拾取的查詢字符串的名稱需要與Context類的名稱匹配(您從DbContext繼承的代碼)。 因此,我需要添加新的連接字符串,如下所示:

<add name="Context" connectionString="Data Source=.\SS2012EXPRESS;Initial Catalog=HomeLibrary;Integrated Security=True" providerName="System.Data.SqlClient" />

原始連接字符串可以保持原樣,不用於運行時。 我不確定它的目的是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM