entity framework6 + C#传递一个combobox.SelectedValue作为context.CreateQuery的参数,我想念的东西很简单?

ObjectContext context = ((IObjectContextAdapter)db).ObjectContext; string queryString = @"SELECT VALUE c FROM Product AS c WHERE c.ProductType = " + comboBox1.SelectedValue; ObjectQuery productQuery = context.CreateQuery( queryString, comboBox1.SelectedValue ); 

//我无法将combobox.selectedvalue作为参数传递 –

我稍后会告诉你原因。 我们先来看看这段代码吧,我可以解释一下这个问题。

这是一个Person类:

 public class Person { public int Age { get; set; } public string Name { get; set; } } 

这是一个列表,我们将combobox绑定到:

 var persons = new List() { new Person { Age = 35, Name = "George" } }; 

以下是设置绑定的不同方法:

 comboBox1.DataSource = persons; comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name"; 

combobox1.SelectedValue将返回“George”。

以下是设置绑定的另一种方法:

 comboBox1.DataSource = persons; comboBox1.DisplayMember = "Name"; 

combobox1.SelectedValue将返回一个Person对象。

您的问题很可能是因为SelectedValue没有返回您希望返回的内容。

您必须在查询中添加一个参数,即:

 var context = ((IObjectContextAdapter)db).ObjectContext; var queryString = @"SELECT VALUE c FROM Product AS c WHERE c.ProductType = @productType"; var productQuery = context.CreateQuery(queryString, new ObjectParameter("productType", comboBox1.SelectedValue);