【发布时间】:2011-03-04 06:04:25
【问题描述】:
我一直在研究如何最好地做到这一点,我们将不胜感激。出于只读目的,我一直很高兴地使用 LINQ 并将其绑定到网格。出于编辑目的,我使用了 LinqDataSource 控件,在过程中启用了编辑/删除操作,并且我有一个很好的可编辑网格绑定到表的部分或全部字段。
现在我有一种情况,我想编辑表 A 中的一些字段,但链接表 B 中有各种值,我也想在该网格中显示(不编辑这些值)。所以我的查询如下所示。 tblDupes 中的字段(已清除,注释)是我想要编辑的,但我想显示那些 tblVoucher 的。
var theDupes = from d in db.tblDupes
where d.dupeGroup == Ref
select new
{
Ref = d.dupeGroup,
InvoiceNum = d.tblVoucher.invoiceRef,
Value = d.tblVoucher.invoiceAmtDecimal,
VendorNum = d.tblVoucher.vendorID,
VendorName = d.tblVoucher.vendorName,
Cleared = d.Cleared
Notes = d.Notes
};
一个类似但不同的问题LINQDataSource - Query Multiple Tables? 让我查看了 scott Guthrie 的博客条目http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx,他在其中处理各种事件以拥有一个带有跨表自定义查询的 LinqDataSource。这似乎仍然针对明确设计的类,即使该类只有字段的一个子集。
所以我的问题是:是否有一种简单的方法允许提交对匿名集合所做的更改(更改。提交类型操作),或者只是一种简单的方法来“显示”另一个表中的字段而不涉及它们在更新中?
编辑:再想一想,确实必须匿名。我很乐意定义一个类来包含该查询中的元素,因为它不会经常更改。但是,这些元素将跨越两个表,即使只有一个需要更新。不确定这是否表明实体框架会更合适 - 我感觉它不会 - 我不希望整个“模型”总是以这种方式对字段进行分组。
谢谢!
【问题讨论】:
标签: c# asp.net linq linq-to-sql anonymous-types