Curioso: debería funcionar IIRC; Veré si puedo hacer un ejemplo rápido; sin embargo, es posible que desee comprobar que tiene el nombre completo enum (es decir, incluido el espacio de nombres).
[update] De here parece que la versión RTM se envió con un error al resolver la enumeración. Una solución alternativa sugerida (en esa página) era agregar el prefijo global::
. Funciona bien para mí sin esta solución, por lo que tal vez se solucione en 3.5 SP1? También supuestamente funciona bien en 3.5 si usa el nombre no calificado si la enumeración está en el mismo espacio de nombres.
[ejemplo] Sí, funcionó bien: con Neptuno, he definido una enumeración para el país de procedencia:
namespace Foo.Bar
{
public enum MyEnum
{
France,
Belgium,
Brazil,
Switzerland
}
}
entonces editado el dbml tener:
<Column Name="ShipCountry" Type="Foo.Bar.MyEnum" DbType="NVarChar(15)" CanBeNull="true" />
Esto generó:
private Foo.Bar.MyEnum _ShipCountry;
//...
[Column(Storage="_ShipCountry", DbType="NVarChar(15)", CanBeNull=true)]
public Foo.Bar.MyEnum ShipCountry
{ get {...} set {...} }
Y finalmente escribió una consulta:
using (DataClasses1DataContext ctx = new DataClasses1DataContext())
{
var qry = from order in ctx.Orders
where order.ShipCountry == Foo.Bar.MyEnum.Brazil
|| order.ShipCountry == Foo.Bar.MyEnum.Belgium
select order;
foreach (var order in qry.Take(10))
{
Console.WriteLine("{0}, {1}", order.OrderID, order.ShipCountry);
}
}
Funcionó bien; resultados:
10250, Brazil
10252, Belgium
10253, Brazil
10256, Brazil
10261, Brazil
10287, Brazil
10290, Brazil
10291, Brazil
10292, Brazil
10299, Brazil
Funcionó cuando obtuve 3.5 SP1 – Barry
tuve que anteponer "global ::" con 3.5 SP1. Tal vez es porque cambié el espacio de nombres predeterminado para el DataContext (Project.Dal) y también para las entidades (Project.Dal.Entities)? – jrummell