2009-07-12 5 views
0

J'ai un problème avec linqdatasource. J'ai gridview dans ma page et j'ai défini sa source de données à linqdatasource, aussi j'ai placé AllowPaging = "True", AllowSorting = "True".Linqdatasource et problème de données relationnelles

<asp:GridView ID="cityGrid" runat="server" AutoGenerateColumns="False" 
DataKeyNames="CityId" AllowPaging="True" 
AllowSorting="True" DataSourceID="LinqCityData"> 

Maintenant dans LinqDataSource Je veux récupérer des données à partir de deux tables (tables relationnelles avec FK), il n'y a pas de problème dans cette étape. Je peux utiliser la propriété Sélectionnez des LinqDataSource comme celui-ci pour sélectionner autre table

<asp:LinqDataSource ID="LinqCityData" runat="server" 
ContextTypeName="ContactSysDataContext" 
TableName="Office_ContactSys_Cities" 
Select="new (CityId, CityName , Office_ContactSys_Province.ProvinceName)"> 
</asp:LinqDataSource> 

ou je ČAS utiliser l'événement de sélection dans LinqDataSource

protected void LinqCityData_Selecting(object sender, LinqDataSourceSelectEventArgs e) 
    { 
     ContactSysDataContext db = new ContactSysDataContext(); 
     var CityResult= from p in db.Office_ContactSys_Cities join o in db.Office_ContactSys_Provinces on p.ProvinceId equals o.ProvinceId select new { o.ProvinceName, p.CityId, p.CityName }; 
     e.Result = CityResult; 
    } 

mais après cette étape, je ne peux pas utiliser de suppression automatique dans LinqDataSource et à la place que je reçois cette erreur:

LinqDataSource 'LinqCityData' does not support the Select property when the Delete, Insert or Update operations are enabled

Voici ma question: Comment puis-je implémenter la pagination dans gridview (bien sûr pour les tables relationnelles) en utilisant linqdatasource (linqdatasource avec la suppression ou la mise à jour activée)?

Répondre

2

Si vous supprimez l'instruction select de linqdatasource, vous n'obtiendrez plus cette erreur. Et puis vous pouvez utiliser la mise à jour, supprimer et insérer. Oh, vous devrez également activer l'insertion de suppression et la mise à jour dans la source de données.

Voici un exemple:

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="Custom.Data.DataAccessDataContext" 

    TableName="CustomerSegmentMappings" 
    EnableDelete="True" 
    EnableInsert="True" 
    EnableUpdate="True"> 
</asp:LinqDataSource> 
Questions connexes