【发布时间】:2014-10-21 13:23:16
【问题描述】:
我们需要使用 Linq-to-SQL 在表单上填充一堆控件来检索数据。为了获取数据,我们需要连接几个表。
我们有以下方法:
第一个文件:
public IEnumerable<object> getPRs()
{
DataContext db = new DataContext();
var prQuery = (from p in db.Invoice
join prd in db.InvoiceDetails on p.ID equals prd.ID
join pra in Accounting on p.ID equals pra.ID
where 1 == 1
orderby p.DownloadDate descending, p.PRNumber, Convert.ToInt32(p.Item)
select new
{
p.ID,
DownloadDate = Convert.ToString(p.DownloadDate),
p.PRNumber,
p.Item,
p.Material,
p.ClientMaterial,
p.Description,
p.Client,
p.Price,
p.UC,
prd.Supplier,
prd.Duns,
prd.RFQ,
prd.RFQDate,
prd.PO,
prd.PODate,
POValue = prd.Price * prd.Quantity,
pra.SO,
pra.SODate,
pra.SOValue,
pra.GR,
pra.GRDate,
pra.GI,
pra.GIDate,
pra.SInvoice,
pra.SInvoiceDate,
pra.CInvoice,
pra.CInvoiceDate,
p.isActive
}).ToList();
return prQuery;
}
我们在第二个文件上调用这样的方法:
IEnumerable<object> data = FirstFile.GetPRs();
PRNumberTextBox.Text = data.PRNumber;
最后一行会报错,因为我们无法从数据对象访问PRNumber 成员。为了填写所有文本框,我们如何调用我们的函数并添加必要的信息?
【问题讨论】:
-
IEnumerable<object>没有PRNumber属性。
标签: c# winforms linq-to-sql