【发布时间】:2009-08-25 12:51:40
【问题描述】:
我在 C# (.NET 3.5) 中使用带有强类型数据集的 ADO.NET。我想在 1:n 关系中相关的两个表中插入一个新行。
表Attachments 保存关系的主键部分,表LicenseAttachments 保存外键部分。
AttachmentsDataSet.InvoiceRow invoice; // Set to a valid row, also referenced in InvoiceAttachments
AttachmentsDataSet.AttachmentsRow attachment;
attachment = attachmentsDataSet.Attachments.AddAttachmentsRow("Name", "Description");
attachmentsDataSet.InvoiceAttachments.AddInvoiceAttachmentsRow(invoice, attachment);
当然,当我第一次更新 InvoicesAttachments 表时,我会从 SQL 服务器获得外键违规,所以我尝试先更新 Attachments 表,这将创建行,但会删除附件InvoiceAttachments 表中的关联。为什么?
我该如何解决这个问题?
【问题讨论】:
-
请注意...当我使用强类型数据集时,每次实例化它时都会受到巨大的性能影响。
-
是的,我知道这一点。你用什么代替?只需键入数据集?
-
@Manuel:您的强类型数据集是否与我在我的 asp.net 项目数据集中找到的数据集相同,您是否有自动生成的表格适配器或手动创建它们?跨度>
-
@Breadtruck:是的,我使用自动生成的 DataSet 和 TableAdapters。
-
@Manuel:如果您的表有很多记录(超过几百条),请确保您永远不要让您的表适配器 GetData 拉整个表,然后输入 @column = @columnvalue 所以您只返回要使用的行,而不是整个表。
标签: c# .net database ado.net strongly-typed-dataset