- 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。
- 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| - |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)
- 新問題