我想定义一个用于EF5的枚举,以及一个相应的查找表.我知道EF5现在支持枚举,但开箱即用,它似乎只在对象级别支持此功能,并且默认情况下不会为这些查找值添加表格.
例如,我有一个用户实体:
public class User
{
int Id { get; set; }
string Name { get; set; }
UserType UserType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和UserType枚举:
public enum UserType
{
Member = 1,
Moderator = 2,
Administrator = 3
}
Run Code Online (Sandbox Code Playgroud)
我希望数据库生成创建一个表,如:
create table UserType
(
Id int,
Name nvarchar(max)
)
Run Code Online (Sandbox Code Playgroud)
这可能吗?
如果我使用Database First,如何使我的上下文对象使用Entity Framework 5.0中的Enum功能.
我正在尝试显示所有带有status Dispatched. 然而,其唯一返回number value的status,而不是实际的string value。我想这是因为我曾经Enum存储过我的status values?
我希望显示这个词Dispatched而不是number value它在Enum.
我在 ASP.Net MVC 中开发,我query builder在 VS2013 中使用。
我不确定如何解决这个问题,任何人都可以使用 SQL 提出一个易于理解的解决方案。
如果需要任何其他代码,请告诉我,并提前感谢您!
这是我想要的查询,但它不起作用:
SELECT Delivery.[Status],
COUNT(Delivery.DeliveryID) AS Dispatched_Status
FROM Delivery
WHERE Delivery.[Status] = 'Dispatched'
GROUP BY Delivery.[Status];
Run Code Online (Sandbox Code Playgroud)
这是确实有效但返回数字值的查询。我这样尝试是因为 Enum 将字符串值存储为数字:
SELECT Delivery.[Status],
COUNT(Delivery.DeliveryID) AS Dispatched_Status
FROM Delivery
WHERE Delivery.[Status] = '1'
GROUP BY Delivery.[Status];
Run Code Online (Sandbox Code Playgroud)
PS 我知道这status是一个保留字 - 将来会遵循正确的命名约定。
交货表定义