如何在 LinqToSQL 查询中使用我的枚举?

How do I use my enumeration in a LinqToSQL query?(如何在 LinqToSQL 查询中使用我的枚举?)
本文介绍了如何在 LinqToSQL 查询中使用我的枚举?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我的数据库表中有一个字段用于存储枚举值,例如:

I have a field in my database table that use to store an enumeration value, e.g.:

create table MyTable (
  ...
  Status tinyint not null,
  ...
)

在我的 C# 类中

public enum TStatus : byte {
  Pending = 1      
  Active = 2,
  Inactive = 3,
}

public TStatus MyStatus {
  get { return (TStatus)Status; }
  set { Status = (byte)value; }
}

现在我想编写一个使用 MyTableMyStatus 属性的 Linq 查询,例如

now I want to write a Linq query that uses the MyStatus property of MyTable e.g.

var q = MyDataContext.GetTable<MyTable>().Where(t => t.MyStatus == TStatus.Active);

当然,Linq 不知道如何将 MyStatus 解释为 SQL.我需要对 MyStatus 做什么才能让它在 LinqToSQL 中工作?

but of course, Linq doesn't know how to interpret MyStatus as SQL. What do I need to do to MyStatus in order for it to work in LinqToSQL?

推荐答案

查看此链接:

http://dotnet.org.za/hitong/archive/2008/08/06/using-enums-with-linq-to-sql.aspx

当链接失效时——至少对我来说这个链接失效了——这是重要的部分:

As links die - and at least for me this one did die - here is the important part:

[将列添加到实体时] 默认情况下,类型将显示为int (System.Int32)",但您可以将其更改为枚举的完全限定类型(在我的情况下,ConsoleApplication1.CustomerType).但是,为了完全定位它,您必须添加全局标识符,如下所示: global::ConsoleApplication1.CustomerType ,因此将其按原样(但与您的命名空间等效)输入文本框

[When adding the column to the entity] by default, the Type will come up as an "int (System.Int32)", but you can change it to the fully-qualified type of the enum (in my case, ConsoleApplication1.CustomerType). BUT, in order to locate it fully, you have to add the global identifier, as follows: global::ConsoleApplication1.CustomerType , so type that as is (but the equivalent for your namespace) into the textbox

这篇关于如何在 LinqToSQL 查询中使用我的枚举?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Is Unpivot (Not Pivot) functionality available in Linq to SQL? How?(Linq to SQL 中是否提供 Unpivot(非 Pivot)功能?如何?)
How to know if a field is numeric in Linq To SQL(如何在 Linq To SQL 中知道字段是否为数字)
Linq2SQl eager load with multiple DataLoadOptions(具有多个 DataLoadOptions 的 Linq2SQl 急切加载)
Extract sql query from LINQ expressions(从 LINQ 表达式中提取 sql 查询)
LINQ Where in collection clause(LINQ Where in collection 子句)
Orderby() not ordering numbers correctly c#(Orderby() 没有正确排序数字 c#)