Not*_*ple 4 c# entity-framework
是否可以将枚举用作表的主键?我有类似以下内容:
public enum SpecialId : uint {}
public class Thing
{
public SpecialId Id { get; set; }
}
public class MyContext : DbContext
{
public DbSet<Thing> Things { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是我在初始化时遇到以下错误:
EntityFramework.dll中发生了'System.InvalidOperationException'类型的异常处理
附加信息:关键组件“ Id”不是类型为“事物”的声明属性。验证尚未将其显式排除在模型之外,并且它是有效的原始属性。
这确实表明它必须是原始的(一个枚举只能转换为原始),但是围绕枚举的EF帖子建议这是可能的
枚举作为键
此外,枚举类型的属性可以参与主键,唯一约束和外键的定义,还可以参与并发控制检查,并具有默认值。
我是在做错什么,还是根本不支持?
一方面,我不知道我可以使用另一个没有映射的属性来破解此功能,以将键转换为枚举。这不是我要找的答案
这不起作用,因为您的枚举基于uint。EF通常不支持无符号整数类型(即,您可以将uint类型用于属性),因此它也不适用于枚举属性。
我个人不是枚举键的忠实拥护者。这只是几个原因:
归档时间: |
|
查看次数: |
2062 次 |
最近记录: |