使用LinqDataSource从Gridview中删除

使用LinqDataSource从Gridview中删除,gridview,linqdatasource,Gridview,Linqdatasource,获取绑定到LinqDataSource的gridview,该LinqDataSource从MsSQL数据库视图获取其数据 这个视图正在拉入各种表以生成我想要的列表。这一切都很好 但是,我无法删除,当我尝试使用delete时,会收到错误消息: 无法对“表(vwMyView)”执行创建、更新或删除操作,因为它没有主键。其中有很多表都有主键,我已经将GridView设置为我想在本例中使用的DatakeyName“inID” 我的LDS看起来像这样: <asp:LinqDataSource run

获取绑定到LinqDataSource的gridview,该LinqDataSource从MsSQL数据库视图获取其数据

这个视图正在拉入各种表以生成我想要的列表。这一切都很好

但是,我无法删除,当我尝试使用delete时,会收到错误消息: 无法对“表(vwMyView)”执行创建、更新或删除操作,因为它没有主键。其中有很多表都有主键,我已经将GridView设置为我想在本例中使用的DatakeyName“inID”

我的LDS看起来像这样:

<asp:LinqDataSource runat="server" ID="ldsMain" EnableDelete="True" ContextTypeName="MyCode.Classes.Data.MyDataContext" OrderBy="inFirstName" OnDeleting="ldsMain_OnDeleting" TableName="MyView"></asp:LinqDataSource>

甚至尝试过移除OnDeleting


我需要它直接从主表中删除,而主表将是MyTable而不是视图,那么我如何才能做到这一点呢?

您是否在
GridView中尝试了以下属性

AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"

让我们退一步…这是只读视图还是可更新视图

如果视图是只读的,则需要重新配置LinqDataSource以引用MyTable而不是视图。但是,如果它是可更新视图,则可以执行插入、更新和删除操作