将一个gridview绑定到一个LinqDataSource,它从MsSQL数据库视图中获取数据。
这个视图正在拉入各种表来生成我想要的列表。这一切都很好。
但是,我无法删除,当我尝试使用删除时,我收到错误消息: 无法对“表(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而不是View,所以我该怎么做?
答案 0 :(得分:0)
您是否在GridView
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
答案 1 :(得分:0)
让我们退后一步......这是一个只读或可更新的视图吗?
如果视图是只读的,那么您需要重新配置LinqDataSource以引用MyTable而不是视图。但是,如果它是可更新的视图,那么您可以执行INSERT,UPDATE和DELETE操作。