C# 在实体框架中查询外键填充组合框
我有一个省的组合框:C# 在实体框架中查询外键填充组合框,c#,entity-framework,C#,Entity Framework,我有一个省的组合框: public Form1() { InitializeComponent(); using (AbEntities c = new AbEntities()) { comboBox1.DataSource = c.tbl_Province.ToList(); comboBox1.ValueMember = "ID"; comboBox1.DisplayMember = "Province"; }
public Form1()
{
InitializeComponent();
using (AbEntities c = new AbEntities())
{
comboBox1.DataSource = c.tbl_Province.ToList();
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Province";
}
}
现在我想在另一个组合框中列出每个省的城市
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedValue.ToString() != null)
{
int pvc = Convert.ToInt32(comboBox1.SelectedValue.ToString());
string sqlString = "SELECT ID,City FROM tbl_City Where ProvinceID = pvc"
using (AbEntities c = new AbEntities())
{
comboBox2.DataSource = c.tbl_City.ToList();
comboBox2.ValueMember = "ID";
comboBox2.DisplayMember = "City";
}
}
}
我编写了以下查询。但是城市不会被过滤您需要查询您的数据库集,例如:
c.tbl_City.Where(c => c.ProvinceID == pvc).ToList();
进一步:
SQL语句和筛选器之间没有关系
你可能想读一些关于
下面是关于EF的更多信息:我在您的代码中没有看到任何过滤。也许你应该这样做:
comboBox2.DataSource = c.tbl_City.Where(x=>x.ProvinceID == pvc).ToList();
说明:
代码中松散的SQL查询字符串没有应用程序。由于您的帖子被标记为实体框架
,因此我假设AbEntities
是一个DataContext
。
在这种情况下,tbl_City
实现了IQueryable
接口,允许您直接在代码中调用Where
。在本例中,我使用了方法语法。
调用ToList()
将执行查询并具体化结果。
这也可以使用查询语法完成:
comboBox2.DataSource = (from x in c.tbl_City
where x.ProvinceID == pvc
select x).ToList();
SQL字符串是怎么回事?除息的