LinqDataSource.AutoGenerateWhereClause Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimin koleksiyonda WhereParameters tanımlanan değerlere göre dinamik olarak where yan tümcesi oluşturup oluşturmadığını LinqDataSource gösteren bir değer alır veya ayarlar.
public:
property bool AutoGenerateWhereClause { bool get(); void set(bool value); };
public bool AutoGenerateWhereClause { get; set; }
member this.AutoGenerateWhereClause : bool with get, set
Public Property AutoGenerateWhereClause As Boolean
Özellik Değeri
true
LinqDataSource denetim Where yan tümcesini oluşturacaksa; değilse, false. Varsayılan değer: false.
Uygulamalar
Örnekler
Aşağıdaki örnekte olarak ayarlanmış bir LinqDataSource denetim gösterilmektedir AutoGenerateWhereClausetrue. Denetim GridView , sorgudan döndürülen verileri görüntülemek için denetime bağlıdır LinqDataSource .
DropDownList Üç değerle doldurulmuş bir denetim eklenir. Veri nesnesinin WhereParameters özelliklerinden biriyle eşleşen ada sahip Category, koleksiyona bir parametre eklenir. Özelliği ControlID denetimin kimliğine DropDownList ayarlanır. Denetim, LinqDataSource kullanıcının denetimden DropDownList seçtiği değere göre kayıtları filtrelemek için özelliğini otomatik olarak oluştururWhere. Sorgu, özelliği kullanıcının denetimden DropDownList seçtiği değerle eşleşen kayıtları Category döndürür.
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
<asp:ListItem Value="Sports"></asp:ListItem>
<asp:ListItem Value="Garden"></asp:ListItem>
<asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
AutoGenerateWhereClause="true"
ID="LinqDataSource1"
runat="server">
<WhereParameters>
<asp:ControlParameter
Name="Category"
ControlID="DropDownList1"
Type="String" />
</WhereParameters>
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
<asp:ListItem Value="Sports"></asp:ListItem>
<asp:ListItem Value="Garden"></asp:ListItem>
<asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
AutoGenerateWhereClause="true"
ID="LinqDataSource1"
runat="server">
<WhereParameters>
<asp:ControlParameter
Name="Category"
ControlID="DropDownList1"
Type="String" />
</WhereParameters>
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
Açıklamalar
özelliğini trueolarak ayarladığınızda AutoGenerateWhereClauseLinqDataSource, denetim koleksiyondaki parametrelerden WhereParameters Where yan tümcesini dinamik olarak oluşturur. Koleksiyona eklediğiniz her parametrenin WhereParameters özelliği sorgulanan veri nesnesindeki bir özellikle eşleşen bir değere ayarlanmalıdır Name . Otomatik olarak oluşturulan Where yan tümcesi, koleksiyonda belirtilen değerin WhereParameters veri nesnesindeki eşleşen özelliğin değerine eşit olup olmadığını denetler. Birden fazla parametre sağlarsanız, parametreler mantıksal AND bir işlemle bağlanır. İçeren veya boş bir değer içeren null parametreler Where yan tümcesine dahil değildir.
Otomatik olarak oluşturulan Where yan tümcesi yalnızca eşitlik için test edebilir ve parametreleri yalnızca işlemle AND bağlayabilir. Eşitlik testi yapmayan AutoGenerateWhereClause bir koşul eklemeniz gerekiyorsa veya parametreleri işlemle OR ilişkilendirmeniz gerekiyorsa özelliğini true olarak ayarlamayın. Özelliğini false olarak ayarlayarak ve koleksiyondaki AutoGenerateWhereClause her parametre WhereParameters için özelliğine Where yer tutucular ekleyerek bu görevleri gerçekleştirebilirsiniz. özelliğinde Where , her yer tutucu adının önüne @ simgesi ekleyin.
Özelliği olduğunda AutoGenerateWhereClausetrueözelliğini ayarlamazsınız Where çünkü ayrıştırıcı where yan tümcesini dinamik olarak oluşturur. özelliği LinqDataSource ise ve özelliğine AutoGenerateWhereClausetrueWhere değerler atanmışsa, denetim bir özel durum oluşturur.