Entity Framework 常見問題FAQ

  1. Code First 如何設(shè)置字段為自增?
//兩個(gè)方法
//’第一是使用DataAnotatation
public class Sale
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
}
//第二個(gè)方法,使用Fluent API
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Sale>().Property(a => a.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}

查看DatabaseGeneratedOption,可以看到是一個(gè)enum,定義如下:

public enum DatabaseGeneratedOption
    {
        None = 0,
        Identity = 1,
        Computed = 2,
    }

熟悉SQL Server的應(yīng)該知道,另外一個(gè)Computed對(duì)應(yīng)SQL Server中的計(jì)算字段。計(jì)算字段稍微復(fù)雜些,此處不詳述。更多有關(guān)Data Anotation請(qǐng)參閱官方文檔 MSDN Entity Framework Code First Data Annotations

  1. SQL LocalDB的連接字符串如何設(shè)置?
    <pre>
    SQL Server 2012 LocalDB, 使用:
    <connectionStrings><add name="SchoolContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\ContosoUniversityDB.mdf;Integrated Security=True;" providerName="System.Data.SqlClient" /></connectionStrings>
    ------------------- 我是分隔線 --------------------
    SQL Server 2014 LocalDB:
    <connectionStrings><add name="SchoolContext" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\ContosoUniversityDB.mdf;Integrated Security=True;" providerName="System.Data.SqlClient" /></connectionStrings>
    </pre>Data Source 從 ** (LocalDB)\v11.0 ** 修改為** (LocalDB)\MSSQLLocalDB **。
    注意其中的|DataDirectory|
  2. |DataDirectory|在哪兒?

For applications that are put in a folder on the user's computer, the database folder uses the application folder.
對(duì)于部署在用戶計(jì)算機(jī)某個(gè)文件夾的應(yīng)用程序,DataDirectory就是應(yīng)用程序文件夾。
For applications that are running under ClickOnce, the database folder uses the specific data folder that is created.
對(duì)于部署在用戶計(jì)算機(jī)某個(gè)文件夾的應(yīng)用程序,DataDirectory就是應(yīng)用程序文件夾。
For Web apps, this will be the App_Data folder
對(duì)于Web應(yīng)用,DataDirectory = ** “App_Data” **文件夾

也可以通過代碼修改

AppDomain.CurrentDomain.SetData(“DataDirectory”, newpath)
  1. 新問題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容