2017-10-06 58 views
1

我的SQL Server表只有10列,并且在SQL中运行select * from table命令,我可以看到只有10列。然而,当我使用的电火花在C#窗口形成数据网格图,它示出13列,所述另外的4列我从外键怀疑:C#edm datagridview将外键显示为不在SQL Server表中的附加列

SQL Table View

我使用的代码:

public partial class Form1 : Form 
    { 
     SA45Team02bLibraryEntities context; 

     public Form1() 
     { 
      InitializeComponent(); 
      context = new SA45Team02bLibraryEntities(); 
      dataGridView1.DataSource = (from x in context.IssueTransactions select x).ToList(); 
     } 
    } 

下面是在DataGridView显示的内容:

datagridviewtable

表的前与SQL Server表视图中的内容相同,但额外的4列与该表上的外键数量相对应。出现相同数量的额外列对应于我在其他表上的外键数量。

有没有人遇到过这之前,有没有什么办法来解决这个问题,而不是只选择我想手动显示的列?

+0

我怀疑这是一种避免这种方式,而不是使用投影到匿名类型。例如:'context.IssueTransactions.Select(x =。new {x.a,x.b,...})' – ESG

回答

1

如果我们谈论的DataGridView,只需设置

dataGridView1.AutoGenerateColumns = false 

然后确保DataPropertyName数据源的列名相匹配。

否则像@ESG所说的那样,当你做选择时使用匿名类型。