我有一个 DataGridView,我想绑定到一个 LINQ 查询,它将更新数据库。
首先我有这样的东西
//Select the values I want which include using a Navigation Property
var query = from c in _data.OrdersTables
where c.FamilyID == _familyID
select new { c.ItemInfo.ItemName, c.Requested, c.Paid };
var results = query.ToList();
dataGridViewOrderInfo.DataSource = results;
这适用于显示数据,但是当您使用 select new 时,它会终止与数据库的连接,您必须使用 new 语句来选择特定列。现在我有这个
var query = from c in _data.OrdersTables
where c.FamilyID == _familyID
select c;
var results = query.ToList();
dataGridViewOrderInfo.DataSource = results;
我只是拉入整行,然后隐藏我不想要的列,这适用于显示和编辑值,但仅限于 OrdersTables 中的值。我无法使用导航属性加入另一个表并显示其中的数据。
我试过只编辑行标题,但它不会让我,我也试过添加一个新列,但又不会让我。我想是因为网格已经绑定了。指定的 db 的额外信息是 sql ce。所以我只需要一种将数据网格绑定到可能从多个表中提取的自定义选择语句的方法。我想我也许可以在我的 .edmx 文件中创建某种视图,但我看不到这样做的方法。我还认为我可以制作一个数据库视图,但我认为我不能使用 SQL CE。