HOW TO:使用對應至個別資料表的實體來建立和執行物件查詢
在 Entity Data Model (EDM) 中使用舊有資料時,如果能夠將單一實體對應至資料庫中的兩份資料表,有時會很有用。這項作業可以在兩份資料表共用相同的索引鍵時完成,例如 SQL Server 2005 隨附之 AdventureWorks 範例資料庫的 Customer 和 Store 資料表。
本主題的範例程式碼會使用 HOW TO:使用對應至兩份資料表的單一實體來定義模型主題中定義的 EDM。針對對應至兩份資料表的實體執行物件查詢與查詢其他實體完全相同。對應不會影響程式碼語法。
若要使用對應至個別資料表的實體來建立專案
建立主控台應用程式。
加入 HOW TO:使用對應至兩份資料表的單一實體來定義模型中定義之 EDM 的參考。
加入 System.Data.Entity 和 System.Runtime.Serialization 的參考。
加入 HOW TO:使用對應至兩份資料表的單一實體來定義模型中實作之 AdventureWorksModel 的前置處理器指示詞 (Preprocessor Directive)。
範例
在這個範例中對應至個別資料表的實體可用來在 foreach 迴圈 (Loop) 中列舉結果。下列程式碼會根據 Store 實體對應的兩份資料表顯示屬性。
Option Explicit On
Option Strict On
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports StoreCustomer_VB.AdventureWorksModel
Module Module1
Sub Main()
Using objCtx As AdventureWorksEntities =
New AdventureWorksEntities()
For Each store As Store In objCtx.Store
Console.WriteLine("CustomerId: {0} Name: {1} " & vbNewLine _
& vbTab & "Account#: {2} SalespersonId: {3}", _
store.CustomerID, store.Name, store.AccountNumber, store.SalesPersonID)
Console.Write(vbNewLine)
Next
End Using
End Sub
End Module
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AdventureWorksModel;
namespace ClientStoreCustomerSplit
{
class Program
{
static void Main(string[] args)
{
using (AdventureWorksEntities objCtx = new AdventureWorksEntities())
{
foreach (Store store in objCtx.Store)
Console.WriteLine("CustomerId: {0} Name: {1} \r\n\t" +
"Account#: {2} SalespersonId: {3}",
store.CustomerID, store.Name,
store.AccountNumber, store.SalesPersonID );
}
}
}
}