호기심 - IIRC가 작동해야합니다. 간단한 예를들 수 있는지 확인해 보겠다. 그러나 네임 스페이스를 포함하여 정규화 된 enum 이름을 갖고 있는지 확인하고 싶을 수도있다.
[업데이트] here에서 열거 형 문제를 해결할 때 RTM 버전이 버그와 함께 제공되는 것으로 보입니다. 한 가지 해결 방법은 (해당 페이지에서) global::
접두사를 추가하는 것이 었습니다. 이 해결 방법이 없으면 잘 작동하므로 3.5 SP1에서 수정되었을 수 있습니까? 또한 열거 형이 동일한 네임 스페이스에있는 경우 규정되지 않은 이름을 사용하면 3.5에서 제대로 작동한다고합니다.
그래, 좋은 일 [예] :
<Column Name="ShipCountry" Type="Foo.Bar.MyEnum" DbType="NVarChar(15)" CanBeNull="true" />
이 생성 : 그때가하는 DBML을 편집
namespace Foo.Bar
{
public enum MyEnum
{
France,
Belgium,
Brazil,
Switzerland
}
}
: Northwind를 함께, 내가 배송 국가에 대한 열거 정의는
private Foo.Bar.MyEnum _ShipCountry;
//...
[Column(Storage="_ShipCountry", DbType="NVarChar(15)", CanBeNull=true)]
public Foo.Bar.MyEnum ShipCountry
{ get {...} set {...} }
그리고 마지막으로 검색어 :
을 작성했습니다.
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);
}
}
정상 작동; 검색 결과 :
10250, Brazil
10252, Belgium
10253, Brazil
10256, Brazil
10261, Brazil
10287, Brazil
10290, Brazil
10291, Brazil
10292, Brazil
10299, Brazil
3.5 SP1을 얻었을 때 – Barry
3.5 SP1을 "global ::"앞에 추가해야했습니다. 아마도 DataContext (Project.Dal) 및 엔터티 (Project.Dal.Entities)의 기본 네임 스페이스를 변경했기 때문일 수 있습니다. – jrummell