ck8*_*4vi 20 c# sql database entity-framework entity-framework-6
我是EF的新手,尝试在ETF6.0中通过代码优先方法完成我的第一步,现在我遇到了问题.
我有一个房产
[Key]
public string FooId { get; set; }
Run Code Online (Sandbox Code Playgroud)
这是我模型的主要关键.
但如果我跑了
PM>更新 - 数据库
包管理器控制台中的命令更新到数据库的挂起迁移我收到以下错误:
标识列'FooId'必须是数据类型int,bigint,smallint,tinyint或十进制或数字,标度为0,并且约束为不可空.
如果我将模型中的PK更改为
[Key]
public int FooId { get; set; }
Run Code Online (Sandbox Code Playgroud)
一切正常.
但我需要PK为类型字符串,因为它在我的情况下绝对敏感.我知道有缺点,但对我来说这是必要的.
我在这里看到一篇较旧的帖子如何将字符串作为实体框架中的主键!.
但它似乎没有解决我的问题或我只是不理解它.
我真的不能在SQL数据库中使用字符串作为PK吗?
或者有办法做到这一点?
Nik*_*ava 42
这是在没有启用Identity Autoincrement的情况下创建PK的正确方法:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string FooId { get; set; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18828 次 |
最近记录: |