如何在实体框架中将字符串作为主键!

entity-framework

我有一个包含员工姓名和员工ID的遗留表。现在,员工ID在char中,因为它可以保存以字母开头的值。员工ID是表中唯一可用的唯一字段。

现在我使用视图从表中捕获数据(它在一个单独的数据库中)。但由于缺少int主键,我的实体框架拒绝识别视图。

任何解决方案都将受到高度赞赏,因为我无法触及遗留表。

一般承认的答案

但由于缺少int主键,我的实体框架拒绝识别视图。

我对此表示怀疑。 EF支持字符串作为PK。

但是,观点当然不能有PK。这意味着在将它们与EF一起使用时,您必须做一些额外的工作,特别是如果您使它们可更新。 这是怎么回事


热门答案

创建另一个int列,并将其用作主键。业务用户,不需要知道该密钥。

我的猜测是最终应用程序使用带有章程的员工ID。像第一个和最后一个初始加上雇用日期,像DB012210。

如何在内部完成表对调用应用程序无关紧要,因此您可以添加另一个字段作为真正的主键,即int。然后只对当前的EmployeeId设置一个唯一约束,但不要将它真正用作主键。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因