- 開啟FCKEditor設定檔fckconfig.js
- 找到設定檔中,小圖示的設定處FCKConfig.SmileyImages,加入要新增圖示的檔名,如上範例8.gif
- 將新增的圖示放入FCKEditor模組目錄中,fckeditor\editor\images\smiley\msn\
依照上圖步驟,就可以輕易完成小圖示的新增囉~
可看到圖中步驟4.在FCKEditor功能中,便可看到新增的圖示囉~~
依照上圖步驟,就可以輕易完成小圖示的新增囉~
可看到圖中步驟4.在FCKEditor功能中,便可看到新增的圖示囉~~
有時候,當專案有需求,希望可以在資料表中增加一個欄位。
當新增的欄位,或異動,需要重建資料表,才有辦法正確變更成功的話。
在Sql 2008 便會得到如下的訊息,提醒您的異動因為需要drop 再 re-create 資料表。
此異動在預設是不允許的,我想,也許這是要保護資料不會不小心被刪掉。
可是當我們是專案剛開始在設計資料表時,資料表內還沒有任何資料。
應該是可以異動,不會有風險的。那該怎麼辦呢?!
仔細看於上圖的訊息中,有提到一個新增的選項,
The Option Prevent saving changes that require the table to be re-created.
在新版的sql2008中,增加了這個選項的防護。確保資料不會不小心被刪除了。
但當我們真的需要直接重建資料表,
我們可以再以下路徑找到這個設定:
Option → Designer → Table and DataBase Designers → Prevent saving changes that require table re-creation.
預設這個選項是打勾的,表示需要啟用此保護機制。
在這邊只要將此選項勾選掉,即可直接儲存需Re-creation資料表的異動了。
但我想,異動完還是必須記得將此選項修改回啟用,
這選項應可有效確保資料不會因不小心異動資料表而被刪除!!!
這裡的測試使用環境為Vistual Studio 2010 ,因此可分別建立.net 3.5 使用EF2.0 ,與.net 4.0使用EF4.0的專案來做比較。相信可以更容易感受到此功能的差異。
在開始前,先建立關聯的資料表,關聯圖如下:
這裡有兩個多對多的資料表,分別為Block與Items,而這兩個資料表於Entity Framework 中的Model圖如下:
因為BlockItems是兩個Table的關聯資料表,因此會直接在Model圖中,對應多對多關係。
在建立Entity Framework 時可選擇的選項畫面如下。
VS2008 .Net3.5設定畫面:
VS2010 .Net3.5設定畫面:
VS2010 .Net4.0 設定畫面:
接著實際寫一段code將Block逐筆寫出,並且於Block下逐筆寫出其包含之Items,
static void Main(string[] args)
{
Entities context = new Entities();
var q = from a in context.Block
select a;
foreach (var block in q)
{
Console.WriteLine("取區塊名稱:" + block.BlockName);
foreach (var item in block.Items)
{
Console.WriteLine("---選購項目:" + item.Name);
}
}
}
寫出結果如下:
vs2010 .net3.5 輸出結果:
vs2010 .net 4.0 輸出結果:
這邊可以看出結果的差異!!!!!
為什麼會有這樣的差異呢?!
底下Debug,看一下分別在不同Framework 下,可取到的Items 資料的差異。
vs2010 .net3.5 Items內容數:
vs2010 .net 4.0 Items內容數:
可以看到,在Entity Framework 4.0 當我們用LINQ to Entity 取到Block 時,
便同時已經取到跟他相關聯的所有Items 了,可是在Entity Framework 2.0,這是沒辦法做到的。
因此於EF4.0中,更加貼近我們是在操做Entity了!
原因為何我還不清楚,原以為是新增的 Include foreign key columns in the model 功能影響。
但經過測試,於EF4.0建立Model時,故意不勾選此選項,結果EF4.0依然可正確的抓到Items 值。
先將此問題做紀錄,待有空再來研究原因為何。