Entity Framework使用心得
首先最給力的教程附上:www.entityframeworktutorial.net
其實照著教程一步一步來的。
首先建立Email類。然後再該類最下面寫一個相應的Context類,並且一開始我就用的 :base("資料庫名字")。然後就可以直接執行了。其實資料庫會新建到預設的connectionString裡。那麼預設的connectionString在哪裡呢?其實並不在我的類庫project的app.config當中,而是在我的啟動project的app.config當中。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
所以其實就是 (localdb)\mssqllocaldb的資料庫中。但是有很多人說在 (localdb)\v11.0或者在 (localdb)\sqlexpress中,這都是有可能的,如果他安裝了Express的話。
還有一種方法可以知道到底存到哪裡去了,那就是檢視本地的例項有哪些。
巨坑爹的是x64的程式會有問題,查了一下,確實有問題=_=||,詳見:http://entityframework.codeplex.com/workitem/2273
所以就把所有x64的程式在解決方案的屬性設定裡build的勾勾都去掉了。
然後成功了。資料庫裡有資料了。
但是到了公司電腦上就完蛋了。原因是我當時不太會migration,總是依賴於開啟自動遷移。但是自動遷移他不work!!!
不過後來學會了怎麼遷移。其實也弱智的。
首先我在consoleTest的工程(啟動工程)的App.config當中設定好我的connectionString,然後把DBContext繼承的基類的建構函式裡的引數改成了:base("name=xxxxconnectionString")要和config當中的一致。
下面註釋掉的是我以前的,沒註釋的是改過了的,此時localhost存在,而資料庫EnronKB不存在,當然存在不存在影響不大,遷移的時候ef會判斷。
<connectionStrings>
<!--add name="EnronKBConnectionString" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=EnronKB;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/-->
<add name="EnronKBConnectionString" connectionString="Data Source=localhost;Initial Catalog=EnronKB;Persist Security Info=True;User ID=sa;Password=hello1234!" providerName="System.Data.SqlClient"/>
</connectionStrings>
改完了之後,我最經常乾的一件事就是開啟package manager console然後輸入
Add-Migration Init回車
然後start工程,一切搞定,下次如果有更改我一般都直接到資料庫中刪除掉所有新建的表,然後再回到package manager console然後輸入Add-Migration Init回車這一步。(貌似有好方法我還嘗試,要組會啦,能交差就行了)
最後呢,當資料庫一切定型了,我就可以turn off initializer了,不然每次啟動工程都要好久好久。
其中還用到了一些小技術,這都在最開頭的教程中又說。不看不知道一看嚇一跳。比如自動鍵值。
另外,非常坑爹的一點,用了ef,資料庫已經填了很多,編譯會異常漫長。
解決辦法是:新建臨時資料庫Temp,將connectionString指向Temp,就好了。(猜測EF會在專案編譯時把資料庫掃一遍)
最後我的類附上:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Forest.CMU
{
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
public class Email
{
public Email()
{
EmailID =-1;
Message_ID ="";.....................
}
[Key]
public int EmailID { get; set; }
public string Message_ID { get; set; }..............................
}
public class EnronKBContext : DbContext
{
public EnronKBContext()
//: base("EnronKB")
: base("name=EnronKBConnectionString")
{
}
public DbSet<Email> Emails { get; set; }
}
}
相關文章
- Entity Framework Tutorial Basics(8):Types of Entity in Entity FrameworkFramework
- Entity Framework Tutorial Basics(20):Persistence in Entity FrameworkFramework
- Entity Framework Tutorial Basics(2):What is Entity Framework?Framework
- Entity Framework Tutorial Basics(29):Stored Procedure in Entity FrameworkFramework
- Entity Framework Tutorial Basics(3):Entity Framework ArchitectureFramework
- Entity Framework Tutorial Basics(4):Setup Entity Framework EnvironmentFramework
- Entity Framework Code-First(23):Entity Framework Power ToolsFramework
- Entity Framework(1)Framework
- entity framework in mysqlFrameworkMySql
- Entity Framework 教程Framework
- Entity Framework Tutorial Basics(33):Spatial Data type support in Entity Framework 5.0Framework
- Entity Framework Tutorial Basics(40):Validate EntityFramework
- Entity Framework Tutorial Basics(42):Colored EntityFramework
- Entity Framework Tutorial Basics(10):Entity LifecycleFramework
- Entity Framework Tutorial Basics(27):Update Entity GraphFramework
- Entity Framework Tutorial Basics(9):Entity RelationshipsFramework
- Entity Framework(實體框架)之Entity SQLFramework框架SQL
- 在Entity Framework中使用儲存過程Framework儲存過程
- Entity Framework Code First使用DbContext查詢FrameworkContext
- Entity Framework Tutorial Basics(24):Update Single EntityFramework
- Entity Framework Tutorial Basics(25):Delete Single EntityFrameworkdelete
- Entity Framework Tutorial Basics(26):Add Entity GraphFramework
- Entity Framework Tutorial Basics(5):Create Entity Data ModelFramework
- Entity Framework+SQLite+DataBaseFirstFrameworkSQLiteDatabase
- Entity Framework Tutorial Basics(30):Framework
- [hystar整理]Entity Framework 教程Framework
- [ASP.NET MVC 小牛之路]06 - 使用 Entity FrameworkASP.NETMVCFramework
- Entity Framework Tutorial Basics(23):Add Single EntityFramework
- Entity Framework Core 2.0 入門Framework
- Entity Framework Core 2.0 新特性Framework
- Entity Framework問題總結Framework
- Entity Framework Code-First(10.2):Entity MappingsFrameworkAPP
- Entity Framework學習初級篇4--Entity SQLFrameworkSQL
- Entity Framework版本歷史概覽Framework
- 重新認識了下Entity FrameworkFramework
- Entity Framework Tutorial Basics(32):Enum SupportFramework
- Entity Framework Tutorial Basics(35):Local DataFramework
- Entity Framework Tutorial Basics(41):Multiple DiagramsFramework