2012-07-18 113 views
1

得到了一个绑定到LinqDataSource的GridView,它从MsSQL数据库视图中获取其数据。使用LinqDataSource从Gridview中删除

此视图拉入各种表中以生成我想要的列表。这一切工作正常。

但是,我无法删除,当我尝试并使用删除时,我收到错误消息: 无法对'Table(vwMyView)'执行Create,Update或Delete操作,因为它没有主键。那里有一些表中有主键,我已经把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而不是视图,所以我该怎么做?

回答

0

你尝试在GridView

AutoGenerateEditButton="true" 
AutoGenerateDeleteButton="true" 
0

以下特性让我们退后一步......这是一个只读的或可更新的看法?

如果视图是只读的,那么你需要重新配置你的LinqDataSource来引用MyTable而不是视图。但是,如果它是可更新的视图,则可以执行INSERT,UPDATE和DELETE操作。