共用方式為


以屬性為基礎的對應 (LINQ to SQL)

LINQ to SQL 會藉由套用屬性 (Attribute) 或使用外部對應檔,將 SQL Server 資料庫對應至 LINQ to SQL 物件模型。 本主題概述以屬性 (Attribute) 為基礎的方法。

以最基本形式存在的 LINQ to SQL 會將資料庫對應至 DataContext、將資料表對應至類別,並且將資料行和關聯性 (Relationship) 對應至這些類別中的屬性 (Property)。 您也可以使用屬性 (Attribute) 來對應物件模型中的繼承階層架構 (Inheritance Hierarchy)。 如需詳細資訊,請參閱HOW TO:在 Visual Basic 或 C# 中產生物件模型 (LINQ to SQL)

使用 Visual Studio 的開發人員通常會使用 物件關聯式設計工具 來執行以屬性為基礎的對應。如需詳細資訊,請參閱物件關聯式設計工具 (O/R 設計工具)物件關聯式設計工具 (O/R 設計工具)物件關聯式設計工具 (O/R 設計工具). 您也可以使用 SQLMetal 命令列工具,或者自行撰寫屬性的程式碼。 如需詳細資訊,請參閱HOW TO:在 Visual Basic 或 C# 中產生物件模型 (LINQ to SQL)

注意事項注意事項

您也可以使用外部 XML 檔進行對應。如需詳細資訊,請參閱外部對應參考 (LINQ to SQL)

下列各節會詳細說明以屬性 (Attribute) 為基礎的對應。 如需詳細資訊,請參閱 System.Data.Linq.Mapping

DatabaseAttribute 屬性

當連接未提供資料庫名稱時,請使用這個屬性 (Attribute) 指定資料庫的預設名稱。 這個屬性 (Attribute) 為選擇性屬性,但如果您加以使用,就必須套用 Name 屬性 (Property),如下表中的說明。

屬性

型別

預設值

說明

Name

String

請參閱 Name

搭配其 Name 屬性 (Property) 使用,可以指定資料庫的名稱。

如需詳細資訊,請參閱 DatabaseAttribute

TableAttribute 屬性

使用這個屬性可以指定某個類別,做為與資料庫資料表或檢視相關聯的實體類別。 LINQ to SQL 會將具有這個屬性的類別視為持續性類別。 下表說明 Name 屬性 (Property)。

屬性

型別

預設值

說明

Name

String

與類別名稱相同的字串

指定某個類別,做為與資料庫資料表相關聯的實體類別。

如需詳細資訊,請參閱 TableAttribute

ColumnAttribute 屬性

使用這個屬性 (Attribute) 可以指定實體類別的成員,以代表資料庫資料表中的資料行。 您可以將這個屬性 (Attribute) 套用至任何欄位或屬性 (Property)。

當 LINQ to SQL 將變更儲存至資料庫時,只會擷取和保存經您識別為資料行的成員。 不具此屬性 (Attribute) 的成員會被認為是非持續性的成員,而不會送出以進行插入或更新。

下表說明這個屬性 (Attribute) 的屬性 (Property)。

屬性

型別

預設值

說明

AutoSync

AutoSync

指示 Common Language Runtime (CLR) 在插入或更新作業之後擷取值。

選項:永遠、永不、OnUpdate、OnInsert。

CanBeNull

Boolean

true

表示資料行可以包含 Null 值。

DbType

String

推斷的資料庫資料行型別

使用資料庫型別和修飾詞 (Modifier) 來指定資料庫資料行的型別。

Expression

String

空白

定義資料庫中的計算資料行。

IsDbGenerated

Boolean

false

表示資料行含有資料庫自動產生的值。

IsDiscriminator

Boolean

false

表示資料行含有 LINQ to SQL 繼承階層架構 (Inheritance Hierarchy) 所需的鑑別子值。

IsPrimaryKey

Boolean

false

表示這個類別成員是資料表的主索引鍵 (可能是唯一一個也可能是多個主索引鍵之一)。

IsVersion

Boolean

false

以資料庫時間戳記或版本號碼識別成員的資料行型別。

UpdateCheck

UpdateCheck

Always,除非成員的 IsVersion 為 true

指定 LINQ to SQL 如何進行開放式並行存取衝突的偵測。

如需詳細資訊,請參閱 ColumnAttribute

注意事項注意事項

AssociationAttribute 和 ColumnAttribute Storage 屬性值會區分大小寫。例如,請確定用於 AssociationAttribute.Storage 屬性 (Property) 之屬性 (Attribute) 中的值與用於程式碼中其他位置之對應屬性 (Property) 名稱的大小寫相符。這適用於所有 .NET 程式語言,甚至是通常不區分大小寫的程式語言,包括 Visual Basic。如需 Storage 屬性的詳細資訊,請參閱 DataAttribute.Storage

AssociationAttribute 屬性

使用這個屬性 (Attribute) 可以指定屬性 (Property),以代表資料庫中的關聯,例如外部索引鍵對主索引鍵的關聯性。 如需關聯性的詳細資訊,請參閱 HOW TO:對應資料庫關聯性 (LINQ to SQL)

下表說明這個屬性 (Attribute) 的屬性 (Property)。

屬性

型別

預設值

說明

DeleteOnNull

Boolean

false

如果位於外部索引鍵成員都不可為 null 的關聯上,則會在關聯設為 null 時刪除物件。

DeleteRule

String

將刪除行為加入至關聯。

IsForeignKey

Boolean

false

若為 true,則指定這個成員做為代表資料庫關聯性之關聯中的外部索引鍵。

IsUnique

Boolean

false

若為 true,則表示外部索引鍵有唯一性條件約束。

OtherKey

String

相關類別的 ID

指定目標實體類別的一個或多個成員,做為關聯另一端的索引值。

ThisKey

String

包含類別的 ID

指定這個實體類別的成員代表關聯這一端的索引值。

如需詳細資訊,請參閱 AssociationAttribute

注意事項注意事項

AssociationAttribute 和 ColumnAttribute Storage 屬性值會區分大小寫。例如,請確定用於 AssociationAttribute.Storage 屬性 (Property) 之屬性 (Attribute) 中的值與用於程式碼中其他位置之對應屬性 (Property) 名稱的大小寫相符。這適用於所有 .NET 程式語言,甚至是通常不區分大小寫的程式語言,包括 Visual Basic。如需 Storage 屬性的詳細資訊,請參閱 DataAttribute.Storage

InheritanceMappingAttribute 屬性

使用這個屬性可以對應繼承階層架構。

下表說明這個屬性 (Attribute) 的屬性 (Property)。

屬性

型別

預設值

說明

Code

String

無。 必須提供值。

指定鑑別子的程式碼值。

IsDefault

Boolean

false

若為 true,則在存放區中沒有鑑別子值符合所指定的任何一個值時,具現化這個型別的物件。

Type

Type

無。 必須提供值。

指定階層架構中這個類別的型別。

如需詳細資訊,請參閱 InheritanceMappingAttribute

FunctionAttribute 屬性

使用這個屬性可以指定方法,以代表資料庫中的預存程序或使用者定義的函式。

下表說明這個屬性 (Attribute) 的屬性 (Property)。

屬性

型別

預設值

說明

IsComposable

Boolean

false

若為 false,則表示對應至預存程序。 若為 true,則表示對應至使用者定義函式。

Name

String

與資料庫中的名稱相同的字串

指定預存程序或使用者定義函式的名稱。

如需詳細資訊,請參閱 FunctionAttribute

ParameterAttribute 屬性

使用這個屬性可以對應預存程序方法的輸入參數。

下表說明這個屬性 (Attribute) 的屬性 (Property)。

屬性

型別

預算值

說明

DbType

String

指定資料庫型別。

Name

String

與資料庫中的參數名稱相同的字串

指定參數的名稱。‏

如需詳細資訊,請參閱 ParameterAttribute

ResultTypeAttribute 屬性

使用這個屬性可以指定結果型別。

下表說明這個屬性 (Attribute) 的屬性 (Property)。

屬性

型別

預算值

說明

Type

型別

(無)

用在對應至會傳回 IMultipleResults 之預存程序的方法中。 宣告預存程序的有效或應有的型別對應。

如需詳細資訊,請參閱 ResultTypeAttribute

DataAttribute 屬性

使用這個屬性可以指定名稱和私用儲存欄位。

下表說明這個屬性 (Attribute) 的屬性 (Property)。

屬性

型別

預算值

說明

Name

String

與資料庫中的名稱相同

指定資料表、資料行等的名稱。

Storage

String

公用存取子

指定基礎儲存欄位的名稱。

如需詳細資訊,請參閱 DataAttribute

請參閱

其他資源

參考 (LINQ to SQL)