linq
2010-06-16 2 views 4 likes 
4

Как выбрать отдельные записи при использовании декларативного источника данных?Выбор отдельных записей в декларативном источнике данных linq?

<asp:LinqDataSource ID="dsColors" runat="server" 
    ContextTypeName="Context" 
    OrderBy="Id, Name" 
    Select='new (Id, String.Concat(Id + ": " + Name) as ColorName)' 
    TableName="Colors"> 
</asp:LinqDataSource> 

ответ

4

Взломать его группой.

<asp:LinqDataSource ID="dsColors" runat="server" 
    ContextTypeName="Context" 
    OrderBy="Id, Name" 
    Select='new (Id, String.Concat(Id + ": " + Name) as ColorName)' 
    TableName="Colors" 
    GroupBy='new(Id,Name)' 
> 
</asp:LinqDataSource> 
1

Это лучше сделать это с помощью по выбору

<asp:LinqDataSource ID="dsColors" runat="server" 
    ContextTypeName="Context" 
    OnSelecting="dsColors_Selecting" 
    TableName="Colors"> 
</asp:LinqDataSource> 

затем в код

private Context ctx; 

protected void Page_Init(object sender, EventArgs e) 
{ 
    ctx = new Context(); 
} 

protected void dsColors_Selecting(object sender, LinqDataSourceSelectEventArgs e) 
{ 
    var results = (from c in Colors 
        select c.ID).Distinct(); 
    e.Result = results; 
} 

что-то в этом смысле должно работать.

0

Использование group by создает объект под названием key.

Группировка по одному значению:

GroupBy="Name" 
Select="new (key as Name)" 

Группа несколькими значениями:

GroupBy="new(ID, Name)" 
Select="new (key.ID, key.Name)" 

Чтобы получить доступ другие свойства не в группе с использованием aggregate queries:

GroupBy="new(ID, Name)" 
Select="new (key.ID, key.Name, min(OtherValue) as OtherValue)" 

 Смежные вопросы

  • Нет связанных вопросов^_^