亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

asp.net vs2010中如何使用ef code first

發布時間:2021-03-09 16:15:17 來源:億速云 閱讀:183 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關asp.net vs2010中如何使用ef code first,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

  EF4.3中主要的新特性,允許通過CodeFirst創建的數據庫可以與你的代碼模型一起增量進化。下面億速云小編來講解下asp.netvs2010中怎么使用efcodefirst?

  asp.netvs2010中怎么使用efcodefirst

  移除的EdmMetadata表:

  如果你允許簡單地運行程序來通過CodeFirst創建數據庫(即沒有顯式啟用遷移),那么,就會獲得作為遷移一部分特性的,數據庫架構生成的好處。

  修復了GetDatabaseValues:

  在早期版本中,如果你的entity和context沒有定義在同一個命名空間中,這個方法調用就會失敗,這個問題已經被修復,使用GetDatabaseValues不再需要定義在同一個命名空間下。

  修復了對DbSet名字中Unicode字符的支持:

  在早期版本中,當在一個名字中包含有Unicode字符的DbSet中進行查詢的時候,會導致異常,這個問題已經被修復了。

  在非公共屬性上的數據標注問題:

  默認情況下,asp.netCodeFirst不會包含私有的,保護的,或者internal的屬性,即使在你的模型中手工包含的情況下。在早期的版本中使用FluentAPI將會忽略這類成員上的任何數據標注。這個問題已經被修復,現在CodeFirst將會處理在模型中手工定義的私有、保護、內部的成員了。

  更多的配置設置:

  安裝EF4.3

  工具->程序包管理器->程序包管理器控件臺(需要NuGet更新到最新)

  鍵入安裝EF的命令Install-PackageEntityFramework(升級EF的命令'Update-PackageEntityFramework')

  由實體生成/更新數據庫表

  1.編寫實體類

namespaceTestDb
  {
  publicclassTestDbContext:DbContext
  {
  //publicTestDbContext():base("TestDbContext"){}//TestDbContext是配置里的數據庫連接名稱,默認為DbContext的名字:TestDbContext
  publicDbSetBooks{get;set;}
  }
  publicclassBook
  {
  publicintBookId{get;set;}
  [MaxLength(200)]
  publicstringTitle{get;set;}
  publicdoublePrice{get;set;}
  [MaxLength(60)]
  publicStringNote5{get;set;}
  [NotMapped]
  publicStringNotMappedTest{get;set;}
  }
  }

  2.在程序包管理器控件臺啟用遷移Enable-Migrations(如果已經存在需要加上-Force),常用部分參數如下(get-helpEnable-Migrations-detailed獲取幫助):

  -ProjectName:""指定項目

  -Force如存在則覆蓋遷移配置(已經運行過Enable-Migrations生成了配置)

  3.新建遷移點Add-MigrationBook-ISBN(Book-ISBN是任意一個名稱標記,遷移點名稱),常用部分參數如下(get-helpAdd-Migration-detailed獲取幫助):

  -ProjectName:""指定項目

  -Force如存在則覆蓋可以參考http://www.52mvc.com

  4.更新到數據庫Update-Database或者Update-Database–Verbose(Verbose顯示詳細信息),常用部分參數如下(get-helpupdate-database-detailed獲取幫助):

  -ProjectName:""指定項目

  -Script生成遷移sql語句,如Update-Database-Script生成更新的遷移sql,不執行掛起的操作

  -SourceMigration:"開始遷移點"只能與-Script一起使用,如Update-Database-Script-SourceMigration:$InitialDatabase表示生成全部的遷移sql

  -TargetMigration:"結束遷移點"回溯到某個遷移點,“0”表示回到空數據庫

  -ConnectionStringName:"配置里的數據庫連接名稱"指定數據庫,這樣不用修改代碼就可實現更新到新的數據庫

  生成的遷移文件

  當運行Add-MigrationBook-ISBN命令后生成的遷移程序如下:

namespaceEdmDb.Migrations
  {
  usingSystem.Data.Entity.Migrations;
  publicpartialclassreName3:DbMigration
  {
  publicoverridevoidUp()
  {
  AddColumn("Books","Note3",c=>c.String(maxLength:60));
  AlterColumn("Books","Title",c=>c.String(maxLength:200));
  DropColumn("Books","Note2");
  Sql(this.Des("Books","Title","你好"));//手動添加,增加數據庫注釋
  }
  publicoverridevoidDown()
  {
  AddColumn("Books","Note2",c=>c.String(maxLength:60));
  AlterColumn("Books","Title",c=>c.String());
  DropColumn("Books","Note3");
  }
  }
  }

  Des方法,添加數據庫注釋,這樣做還要手動添加注釋的語句,如果可以修改Add-Migration的處理方式就好了。

publicstaticclassDbMigrationExt
  {
  publicstaticstringDes(thisDbMigrationmig,stringtableName,stringcolName,stringDesStr)
  {
  stringsqlStr="EXECsys.sp_addextendedproperty@name=N'MS_Description'"
  +",@value=N'"+DesStr+"',@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE'"
  +",@level1name=N'"+tableName+"',@level2type=N'COLUMN',@level2name=N'"+colName+"'";
  returnsqlStr;
  }
  }

  注意刪除數據庫所有表要重建的時候,需要刪除系統表__MigrationHis,__MigrationHis表記錄了遷移的日志,Add-Migration是檢查__MigrationHis確認數據庫狀態的。

關于“asp.net vs2010中如何使用ef code first”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大洼县| 福清市| 曲阳县| 武鸣县| 广东省| 江门市| 阿巴嘎旗| 阿坝县| 固阳县| 梁山县| 图木舒克市| 惠东县| 陵水| 报价| 巨鹿县| 阳新县| 炎陵县| 内黄县| 开平市| 阜阳市| 泗洪县| 澄城县| 呈贡县| 华安县| 巴林右旗| 仙游县| 专栏| 潮安县| 通榆县| 绍兴市| 定边县| 山东省| 定安县| 渑池县| 竹北市| 乐昌市| 天镇县| 梅州市| 贵南县| 崇礼县| 原平市|