QueryTypeBuilder 類別

定義

提供簡單的 API 來設定查詢類型。

使用 ModelBuilder API 時,這個類別的實例會從方法傳回,而且不是設計成直接在應用程式程式碼中建構。

public class QueryTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>
type QueryTypeBuilder = class
    interface IInfrastructure<IMutableModel>
    interface IInfrastructure<InternalEntityTypeBuilder>
Public Class QueryTypeBuilder
Implements IInfrastructure(Of IMutableModel), IInfrastructure(Of InternalEntityTypeBuilder)
繼承
QueryTypeBuilder
衍生
實作
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>

建構函式

QueryTypeBuilder(InternalEntityTypeBuilder)

此 API 支援 Entity Framework Core 基礎結構,而且不適合直接從您的程式碼使用。 此 API 可能會在未來的版本中變更或移除。

屬性

Metadata

正在設定的查詢類型。

方法

HasAnnotation(String, Object)

在查詢類型上加入或更新批註。 如果 中 annotation 指定索引鍵的注釋已經存在,其值將會更新。

HasBaseType(String)

在繼承階層中設定此查詢類型的基底類型。

HasBaseType(Type)

在繼承階層中設定此查詢類型的基底類型。

HasOne(String, String)

設定關聯性,其中此查詢類型具有指向關聯性中其他類型之單一實例的參考。

請注意,呼叫沒有參數的這個方法會明確地將關聯性的這個端設定為不使用導覽屬性,即使實體類型上有這類屬性也一樣。 如果要使用導覽屬性,則必須指定它。

呼叫這個方法之後,您應該鏈結對 WithMany(String)WithOne(String) 的呼叫,以完整設定關聯性。 只要呼叫這個沒有鏈結呼叫的方法,就不會產生有效的關聯性。

HasOne(Type, String)

設定關聯性,其中此查詢類型具有指向關聯性中其他類型之單一實例的參考。

呼叫這個方法之後,您應該鏈結對 WithMany(String)WithOne(String) 的呼叫,以完整設定關聯性。 只要呼叫這個沒有鏈結呼叫的方法,就不會產生有效的關聯性。

HasQueryFilter(LambdaExpression)

指定 LINQ 述詞運算式,此運算式會自動套用至以這個查詢類型為目標的任何查詢。

Ignore(String)

從查詢類型中排除指定的屬性。 這個方法通常用來從慣例新增的查詢類型中移除屬性。

Property(String)

傳回物件,這個物件可用來設定查詢類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

使用這個多載新增屬性時,屬性名稱必須符合查詢類型上 CLR 屬性或欄位的名稱。 這個多載無法用來新增陰影狀態屬性。

Property(Type, String)

傳回物件,這個物件可用來設定查詢類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

新增屬性時,如果查詢類型類別中有相同名稱的屬性,則會將其新增至模型。 如果查詢類型類別中沒有任何屬性存在,則會加入新的陰影狀態屬性。 陰影狀態屬性是查詢類型類別中沒有對應屬性的屬性。 屬性的目前值會儲存在 中 ChangeTracker ,而不是儲存在查詢類型類別的實例中。

Property<TProperty>(String)

傳回物件,這個物件可用來設定查詢類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

新增屬性時,如果查詢類型類別中有相同名稱的屬性,則會將其新增至模型。 如果查詢類型類別中沒有任何屬性存在,則會加入新的陰影狀態屬性。 陰影狀態屬性是查詢類型類別中沒有對應屬性的屬性。 屬性的目前值會儲存在 中 ChangeTracker ,而不是儲存在查詢類型類別的實例中。

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode設定要用於這個查詢類型之所有屬性的 。

根據預設,如果依慣例找到支援欄位或已指定支援欄位,則會在建構新物件時使用,通常是從資料庫查詢實體時。 屬性會用於所有其他存取。 呼叫這個方法將會變更此查詢類型之所有屬性的行為,如列舉中所述 PropertyAccessMode

呼叫這個方法會覆寫此查詢類型上設定的任何存取模式的所有屬性。

明確介面實作

IInfrastructure<IMutableModel>.Instance

查詢類型所屬的模型。

IInfrastructure<InternalEntityTypeBuilder>.Instance

取得用來設定查詢類型的內部產生器。

擴充方法

GetInfrastructure<T>(IInfrastructure<T>)

從使用 IInfrastructure<T> 隱藏的屬性取得值。

這個方法通常由資料庫提供者 (和其他延伸模組) 使用。 它通常不會用於應用程式程式碼。

HasDiscriminator(QueryTypeBuilder)

設定辨識子資料行,用來識別當繼承階層對應至關係資料庫中的單一資料表時,資料表中每個資料列所代表的查詢類型。

HasDiscriminator(QueryTypeBuilder, String, Type)

設定辨識子資料行,用來識別當繼承階層對應至關係資料庫中的單一資料表時,資料表中每個資料列所代表的查詢類型。

HasDiscriminator<TDiscriminator>(QueryTypeBuilder, String)

設定辨識子資料行,用來識別當繼承階層對應至關係資料庫中的單一資料表時,資料表中每個資料列所代表的查詢類型。

ToView(QueryTypeBuilder, String)

設定以關係資料庫為目標時,檢視所對應的檢視或資料表。

ToView(QueryTypeBuilder, String, String)

設定以關係資料庫為目標時,檢視所對應的檢視或資料表。

適用於