Utilizando la propiedad SelectedItem de ComboBox w / Linq Anonymous Type

En C # 3.5 usando un ComboBox para mostrar los resultados de una consulta LinQ. ¿Cómo configuro la propiedad del elemento seleccionado del cuadro combinado cuando la consulta LinQ devuelve un tipo anónimo?

Configuré el origen de datos del cuadro combinado en estas líneas:

comboBox1.DataSource = from p in db.products
                   select p;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ProductId";

Si hago eso, puedo elegir el elemento seleccionado haciendo algo como:

comboBox1.SelectedItem = (from p in db.products 
                          where p.ProductId = 5 
                          select p).First();

El problema es que quiero llenar un cuadro combinado con un resultado de tipo anónimo como:

comboBox1.DataSource = from p in db.products
                   select new
                   {
                     p.ProductId,
                     p.Name
                   };

El tipo anónimo que estoy usando en realidad es más complicado que eso, pero es suficiente para explicarlo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta