真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

asp.netvs2010中如何使用efcodefirst-創(chuàng)新互聯(lián)

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

我們擁有10多年網(wǎng)頁設計和網(wǎng)站建設經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設計師為您提供的解決方案。為企業(yè)提供做網(wǎng)站、網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)、移動網(wǎng)站建設、HTML5、等業(yè)務。無論您有什么樣的網(wǎng)站設計或者設計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設計服務并滿足您的需求。

EF4.3中主要的新特性,允許通過CodeFirst創(chuàng)建的數(shù)據(jù)庫可以與你的代碼模型一起增量進化。下面創(chuàng)新互聯(lián)網(wǎng)站建設公司,小編來講解下asp.netvs2010中怎么使用efcodefirst?

asp.netvs2010中怎么使用efcodefirst

移除的EdmMetadata表:

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

修復了GetDatabaseValues:

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

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

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

在非公共屬性上的數(shù)據(jù)標注問題:

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

更多的配置設置:

安裝EF4.3

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

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

由實體生成/更新數(shù)據(jù)庫表

1.編寫實體類

namespaceTestDb
  {
  publicclassTestDbContext:DbContext
  {
  //publicTestDbContext():base("TestDbContext"){}//TestDbContext是配置里的數(shù)據(jù)庫連接名稱,默認為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(如果已經(jīng)存在需要加上-Force),常用部分參數(shù)如下(get-helpEnable-Migrations-detailed獲取幫助):

-ProjectName:""指定項目

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

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

-ProjectName:""指定項目

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

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

-ProjectName:""指定項目

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

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

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

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

生成的遷移文件

當運行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","你好"));//手動添加,增加數(shù)據(jù)庫注釋
  }
  publicoverridevoidDown()
  {
  AddColumn("Books","Note2",c=>c.String(maxLength:60));
  AlterColumn("Books","Title",c=>c.String());
  DropColumn("Books","Note3");
  }
  }
  }

Des方法,添加數(shù)據(jù)庫注釋,這樣做還要手動添加注釋的語句,如果可以修改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;
  }
  }

注意刪除數(shù)據(jù)庫所有表要重建的時候,需要刪除系統(tǒng)表__MigrationHis,__MigrationHis表記錄了遷移的日志,Add-Migration是檢查__MigrationHis確認數(shù)據(jù)庫狀態(tài)的。

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


當前文章:asp.netvs2010中如何使用efcodefirst-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://weahome.cn/article/gdsci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部