Tag Archives: Entity Framework 筆記

ASP.Net MVC Entity Framework Error – More than one context type was found in the assembly ‘ProjectName’.

最近愛上了使用Entity Framework..
當我嘗試使用 “enable-migrations” 時出現以下的錯誤信息

More than one context type was found in the assembly ‘LocalIssuesWeb’.
To enable migrations for ‘LocalIssuesWeb.Models.ApplicationDbContext’, use Enable-Migrations -ContextTypeName LocalIssuesWeb.Models.ApplicationDbContext.
To enable migrations for ‘LocalIssuesWeb.DAL.LocalIssuesContext’, use Enable-Migrations -ContextTypeName LocalIssuesWeb.DAL.LocalIssuesContext.
More than one context type was found in the assembly

做了一會research之後發現是由於 ASP.Net IdentityApplicationDbContext和我自己定義給這個project的 Database Context不同所以出現的

解決方法十分簡單
我們需要分別為 ASP.Net IdentityApplicationDbContext和自己定期的Database context 執行migration
e.g.

Enable migration for ApplicationDBContext – create a folder inside migration folder named “ApplicationDBContext
enable-migrations -ContextTypeName [Context Name] -MigrationsDirectory Migrations\[想建立的Context Folder Name]

 enable-migrations -ContextTypeName ApplicationDBContext -MigrationsDirectory Migrations\ApplicationDBContext

More than one context type was found in the assembly

Entity Framework Migration Folder
add-migration

add-migrationConfigurationTypeName [Namespace e.g. LocalIssuesWeb.Migrations.ApplicationDBContext].ConfigurationInit user database

add-migration -ConfigurationTypeName LocalIssuesWeb.Migrations.ApplicationDBContext.Configuration "Init user database"

Add Migration
Update-database

update-database -ConfigurationTypeName [NameSpace].Configuration

update-database -ConfigurationTypeName LocalIssuesWeb.Migrations.ApplicationDBContext.Configuration

Update Database
現在ApplicationDBContext之後我們可以為自己建立的Database Context進行migration
和之前的指令差不多

enable-migrations -ContextTypeName LocalIssuesContext -MigrationsDirectory Migrations\LocalIssuesContext

add-migration

add-migration -ConfigurationTypeName LocalIssuesWeb.Migrations.LocalIssuesContext.Configuration "Init"

Update-database

update-database -ConfigurationTypeName LocalIssuesWeb.Migrations.LocalIssuesContext.Configuration

之後每當我們有更改ASP.Net Identity的class 時都要執行 ApplicationDbContextAdd-Migtration和Update-database
然而自己的Database model更新了便要更新自己的Database context.

Hope you find it useful

EntityFramework with MySQL DateTime Issue – Unable to convert MySQL date/time value to System.DateTime

很多時候都會在Database Table上建立一個有 DateTime Field用來記錄資料修改時間

現在幫另一間公司寫的 ASP.Net MVC With Entity FrameworkWeb Application
為了減低成本.. 這個Project 選用了MySQL
使用Entity Framework 使用MySQL 真是一個挑戰。。
有些的功能沒有直接的 inplementation
所以久不久便會遇到問題

今次遇到的錯誤信息如下
An exception of type ‘MySql.Data.Types.MySqlConversionException’ occurred in MySql.Data.dll but was not handled in user Code

Additional information: Unable to convert MySQL date/time value to System.DateTime
Unable to convert MySQL date/time value to System.DateTime
主要是當我嘗試load data時出現..
解決方法 十分簡單
我𠍒只需要在Web.config connection string上加上以下的設定便可以了

Convert Zero Datetime=true

E.g.
<add name=”ProjectTrackerContext”
connectionString=”Database=docker_dev;Data Source=192.168.99.100;User Id=root;Password=password;Convert Zero Datetime=true
providerName=”MySql.Data.MySqlClient” />

Hope you find it useful

This package (or one of its dependencies) contains an init.ps1 file and needs to be installed from the Package Manager Console.

當我嘗試使用NuGet來更新EntityFrameworkReference 時出現了以下的錯誤信息…
This package (or one of its dependencies) contains an init.ps1 file and needs to be installed from the Package Manager Console.
This package (or one of its dependencies) contains an init.ps1 file and needs to be installed from the Package Manager Console.

說要使用Package Manager Console 才可以進行安裝..
由於我對NuGet不知熟識…
所以便要花一些時候來做Research 看看怎樣使用NuGetPackage Manager Console.

解決方法:
原來Package Manager Console 應該是在Visual Studio 左下方的分頁上的

如果找不到的話可以用以下的方法開啟
Tools” ->”Library Package Manager” -> 選擇 “Package Manager Console

開啟之後可以在Console上輸入以下指令來安裝Entity Framework的更新
Install-Package EntityFramework
Install-Package EntityFramework
Update Entity Framework Completed

NuGet Update Entity Framework Completed
Hope you find it useful

Notes for Entity Framework – Entity Framework 筆記

開始寫一個新的ASP.Net MVCWebsite 用來方便同事更新公司的Email Template的..
由於這個Project的Database比較簡單…
只有幾個Table…但是又要把另外2個不同的資料庫的數據連在一起…
很多時候都聽到朋友說用Entity Framework, ORM [Object Relational Mapping]..等等的方法…

所以便在想使用Entity Framework來寫不知道會不會可以很快地完成呢
使用Entity Framework的話..
我便不用自行寫很多的Stored Procedure , 或 Insert/Add/Update/Delete..來處理資料了
Entity Framework都可以幫我處理的…
暫時會先學習Code First這個Approach 先

一如以往…我便在網誌上開了一個新的Category
用來記錄使用Entity Framework時遇到的問題

如果大家有什麼問題..或有更好的方法..
歡迎留言給我..一起分享使用Entity Framework的經驗
Hope you find it useful