我正在使用Entity Framework 6,刚刚发布,并且需要:
1 - 将表列映射到枚举;
2 - 将查找表(有两列:Id 和 Name)映射到 Enum。
这在实体框架 6 中可能吗?
谢谢你, 米格尔
您通常不会将表映射到枚举类型。您只需根据查找表中的内容定义枚举类型并使用它,而无需在模型中包含这些表。例如,对于 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,
}
(确保枚举值与数据库中的值相对应),您将在应用程序中使用它,而不包含类别表 - 即,您将使用此枚举类型作为作为外键的属性的类型数据库中的类别表。或者 - 例如如果您需要描述 - 您将创建一个与类别表相对应的实体,并使用枚举(如上面定义的)作为关键属性类型。然后,您将再次对数据库中作为类别表外键的所有属性使用枚举类型。
最近遇到了类似的问题,并对缺乏有关该主题的信息感到惊讶。 我首先有一个数据库 EF 映射,并希望将查找表映射到枚举(以便生成枚举)。 现在,您希望利用使用 EF Core 进行值转换来实现所描述的功能。
但事实是,您很可能一开始就不需要这样做。有两种情况:
我遇到了场景 1,所以我只是使用类对象并调用 DB 来获取值。如果你真的想限制数据库访问 - cach