發表文章

目前顯示的是 7月, 2010的文章

如何透過WCF Data Services呼叫Store Procedure

圖片
我想許多人都知道.NET從3.5開始支援REST服務,且REST服務幾乎快紅遍半邊天了,當中WCF Data Services則是其中一種應用,WCF Data Services後端的實際存取資料庫的核心為Entity Framework,相信許多人都比我還熟Entity Framework,所以筆者就不多說了。筆者今天必須透過WCF Data Services來存取SQL Server 2008的Store Procedure,這個Store Procedure其實是個.NET Assembly,因此順道將處理的過程寫一個Sample檔並改以Northwind資料實做一遍記錄下來(已經熟悉的朋友就跳著讀吧^^)。 首先筆者以VS 2010先建立一個空網站: 並加入一個ADO.NET 實體資料模型,並加入「HelloWorld」的預存程序,然後將命名空間設定為「NorthwindModel」: 此預存程序為一個.NET Assembly的應用程式,他會傳回一個字串型態的物件,不過這邊在使用Entity Framework呼叫Store Procedure時還須做一些處理,因為Entity Framework在更新資料庫模型時項目如果是Store Procedure或function時並不會自動產生程式碼,若開啟NorthwindModel.Designer.cs起來看,會發現只有「建構函式」與「部分方法」這兩個原先既有的區塊,如下: 這個時候需要到模型瀏覽器NorthwindModelEntityContainer. NorthwindEntities函式匯入 項目上面點選滑鼠右鍵,並選擇「加入函式匯入」,如下圖: 這時會出現「加入函式匯入」對話框,首先選擇預存程序名稱,並將函式名稱設為SP_HelloWorld,然後設定傳回值為純量的String型態,如下設定畫面: 完成後模型瀏覽器馬上會出現SP_HelloWorld這個函式的對應 並且會對 NorthwindModel.Designer.cs產生一段Function Import的程式碼,程式碼中看見我們剛剛設定的SP_HelloWorld方法,如下: /// ///沒有可用的中繼資料文件。 /// /// 沒有可用的中繼資料文件。 ...

開啟Hyper-V的內部虛擬網路

圖片
撰文:吳俊毅 時間:2010/7/14 在操作使用Hyper-V的Guest OS時,如果您是使用操作VMWare的方式來思考Hyper-V的虛擬網路設定的話您可能會碰壁,為什麼呢?在VMWare中只要Network的Getwary服務有啟動的話預設的設定就會自動將Guest OS的虛擬網卡透過實體網卡將Guest OS對應成一台網路實體IP位置,所以對實體網路而言好像就是多了台電腦。 在Hyper-V中提供了3種虛擬網路類型: 1. 外部虛擬網路 使虛擬機器直接對應外部實體網卡,這種方式會讓虛擬機器直接存取實體外部網路,筆者實際測試發現會直接搶住實體網路卡。 2. 內部虛擬網路 所謂的內部虛擬網路是讓虛擬機器可以與外部機器溝通,簡單的說就是在您的本機中軟體虛擬一個如192.168.1.1~192.168.1.255的網段,通常用來測試一個虛擬網路環境,比如在當中架設Ap Server、Web Server,或甚至在虛擬網路中架設兩台DB Server來測試Cluster等等,不需使用實體網路來進行測試。 3. 私人虛擬網路 只是讓虛擬機器彼此間通訊,與外部網路隔絕。 如果您是VMWare的慣用者,第二種可能會比較適合您。筆者的測試環境是Windows Server 2008 Enterprise,使用的Hyper-V版本為6.0.6002.18005,要設定虛擬網路可從Hyper-V管理員的主畫面 點選後會進入如下虛擬網路管理員的畫面: 點選左邊的新增虛擬網路即可新增虛擬網路卡,讀者應該發現筆者已經新增了一張內部的網卡(筆者將其稱做Realtek RL8168 for External)。點選該內部網卡後,左半邊有可以設定的項目。筆者先說明想要幹什麼,筆者想讓Hyper-V內部網路同時具備內部虛擬網路的特性,同時又可以存取外部網路,同時外部實體機器也可以存取內部的虛擬機器,如同操作VMWare的習慣那樣。 當新增了Realtek RL8168 for External內部網卡之後在實體電腦的網路連線也會新增一個Realtek RL8168 for External的區域連線,如下圖所示: 接著將實體網卡與虛擬網卡均選起來,按右鍵選單的”新增到橋接器”,如下圖: 這麼可以使剛才我們在Hyper-V內部的Realtek RL8168 for External內部網卡存...