相关疑难解决方法(0)

EF5 Code First Enums和Lookup Tables

我想定义一个用于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)

这可能吗?

entity-framework ef-code-first entity-framework-5

29
推荐指数
3
解决办法
2万
查看次数

如何让EF Core数据库首次使用枚举?

我正在使用EF Core和数据库优先方法,使用"Scaffold-DbContext"命令生成我的DbContext/Entities.

我怎样才能指导脚手架的DbContext某一个领域在一定的表格应该生成代码,使用枚举,而不是仅仅一个int?

以下是您在常规EF中的使用方法:https: //www.devu.com/cs-asp/lesson-69-mapping-enum-types-entity-properties-framework-designer/

此枚举已在代码中定义:

public enum StateEnum {
  Ok = 1,
  Fail = 2
}
Run Code Online (Sandbox Code Playgroud)

这就是Scaffold-DbContext给我的

public partial class Foo
{
    public int Id { get; set; }
    public int State { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这就是我想要它创建的:

public partial class Foo
{
    public int Id { get; set; }
    public StateEnum State { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core

15
推荐指数
4
解决办法
2万
查看次数

实体框架核心 - 脚手架枚举

语境:

我使用数据库优先方法通过 Entity Framework Core 和脚手架生成实体。每次我更改数据库中的某些内容时,我都会使用-f参数运行脚手架来重写生成的实体。到目前为止,一切都很好。在我的数据库模式中,我有一些查找表,它们用作其他表的枚举,并且这些其他表上有外键。

问题:

我想从这些查找表生成枚举,我可以在代码中使用它们。这些枚举应由查找表中的数据(Id、Value)填充。这样的事情有可能吗?

我发现人们可以忽略实体生成中的那些表,并使用value-conversions链接它们自己的枚举。但这真的是唯一的出路吗?


我的数据库架构示例:

桌子:Category

ID 价值
0 有氧运动
1 力量
2 肥大

桌子:Exercise

ID 姓名 类别
0 硬拉 1
1 卧推 1
2 跑步 0

所以从表中Category我想生成简单的枚举:

public enum Category {
    Cardio = 0,
    Strength = 1,
    Hyperthrophy = 2
}
Run Code Online (Sandbox Code Playgroud)

然后我希望它在实体中使用,Exercise例如:

public partial class Exercise {
    public Exercise() {
    }

    public int Id { get; set; }
    public string Name { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# enums scaffolding ef-database-first entity-framework-core

5
推荐指数
1
解决办法
1261
查看次数