HOW TO:查詢複雜型別 (Entity Framework)
本主題顯示如何執行會傳回內含複雜型別屬性之實體類型物件的查詢。 如需複雜型別的詳細資訊,請參閱複雜型別物件和 How to: Create and Modify Complex Types。
執行這個範例中的程式碼
將 AdventureWorks 銷售模型 加入至專案中,並將專案設定為使用 Entity Framework 。 如需詳細資訊,請參閱 HOW TO:使用實體資料模型精靈 (Entity Framework)。
在應用程式的字碼頁中加入下列 using 陳述式 (在 Visual Basic 中為 Imports):
Imports System Imports System.Collections.Generic Imports System.Collections Imports System.Data.Common Imports System.Data Imports System.IO Imports System.Data.SqlClient Imports System.Data.EntityClient Imports System.Data.Metadata.Edm
using System; using System.Collections.Generic; using System.Collections; using System.Data.Common; using System.Data; using System.IO; using System.Data.SqlClient; using System.Data.EntityClient; using System.Data.Metadata.Edm;
您可以在實體設計工具的 [模型瀏覽器] 視窗中按兩下 .edmx 檔顯示模型。
在實體設計工具介面上,選取 Contact 實體類型的 Email 和 Phone 屬性,然後以滑鼠右鍵按一下並選取 [重構至新的複雜型別]。 含有已選取之 Email 和 Phone 屬性的新複雜型別隨即會加入至 [模型瀏覽器]。
將新型別重新命名為 EmailPhone。 將 Contact 實體類型中的屬性重新命名為 EmailPhoneComplexType.
如需使用實體資料模型精靈來建立及修改複雜型別的詳細資訊,請參閱 How to: Refactor Existing Properties into a Complex Type Property (Entity Data Model Tools) 和How to: Create and Modify Complex Types。
範例
以下範例執行會傳回 Contacts
集合的查詢。 Contact
型別包含一個複雜型別屬性 EmailPhoneComplexProperty
,它是由 EmailAddress
屬性和 Phone
屬性組成。 範例會輸出 ContactID
屬性和 EmailPhoneComplexType
複雜型別的值。
Using context As New AdventureWorksEntities()
Dim contacts = From contact In context.Contacts _
Where contact.ContactID = 3 _
Select contact
For Each contact As Contact In contacts
Console.WriteLine("Contact Id: " & contact.ContactID)
Console.WriteLine("Contact's email: " & contact.EmailPhoneComplexProperty.EmailAddress)
Console.WriteLine("Contact's phone#: " & contact.EmailPhoneComplexProperty.Phone)
Next
End Using
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
var contacts =
from contact in context.Contacts
where contact.ContactID == 3
select contact;
foreach (Contact contact in contacts)
{
Console.WriteLine("Contact Id: " + contact.ContactID);
Console.WriteLine("Contact's email: " + contact.EmailPhoneComplexProperty.EmailAddress);
Console.WriteLine("Contact's phone#: " + contact.EmailPhoneComplexProperty.Phone);
}
}
另請參閱
參考
Complex Type Objects
How to: Create and Modify Complex Types