Entity framework 将表列映射到枚举,并将查找表映射到枚举

Entity framework 将表列映射到枚举,并将查找表映射到枚举,entity-framework,Entity Framework,我正在使用Entity Framework 6,刚刚发布,需要: 1-将表列映射到枚举 2-将查找表(有两列:Id和名称)映射到枚举 这在实体框架6中是否可行 谢谢,, Miguel通常不会将表映射到枚举类型。您只需根据查找表中的内容定义枚举类型,并使用它,而不在模型中包含这些表。例如,对于Northwind.Categories表: ID Name Description 1 Beverages Soft drinks, coffees, teas, b

我正在使用Entity Framework 6,刚刚发布,需要:

1-将表列映射到枚举

2-将查找表(有两列:Id和名称)映射到枚举

这在实体框架6中是否可行

谢谢,,
Miguel

通常不会将表映射到枚举类型。您只需根据查找表中的内容定义枚举类型,并使用它,而不在模型中包含这些表。例如,对于Northwind.Categories表:

ID  Name            Description
1   Beverages       Soft drinks, coffees, teas, beers, and ales
2   Condiments      Sweet and savory sauces, relishes, spreads, and seasonings
3   Confections     Desserts, candies, and sweet breads
4   Dairy Products  Cheeses
5   Grains/Cereals  Breads, crackers, pasta, and cereal
6   Meat/Poultry    Prepared meats
7   Produce         Dried fruit and bean curd
8   Seafood         Seaweed and fish
您将创建以下枚举类型

public enum Categories
{
    Beverages = 1,
    Condiments = 2,
    Confections = 3,
    Dairy_Products = 4,
    Grains_Cereals = 5,
    Meat_Poultry = 6,
    Produce = 7,
    Seafood = 8,
}

确保枚举值与数据库中的值相对应,),并且您将在应用程序中使用它,而不包括类别表-即,您将使用此枚举类型作为数据库中类别表外键的属性类型。或者,例如,如果需要说明,则可以创建与Categories表对应的实体,并使用enum(如上所述)作为键属性类型。然后,对于数据库中属于Categories表外键的所有属性,您也可以使用enum类型。

这可能会重复,因为表和enum很容易不同步。如果“代码优先”和迁移包括将NET enum映射到所讨论的表,那就太好了,因为C#enum类型和数据库中的值之间没有硬链接,因此总是有发生不同步的风险。@subsci-存在错误。不幸的是,我正在寻找另一个方向,所以这对我没有帮助。我认为这不是一个好的建议,因为开发人员负责手动将表上的ID绑定到域上的数值。要求枚举值匹配表ID是维护性头痛的一半;帮自己一个忙,避开它。