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

时间:2010-01-22 13:43:29

标签: entity-framework

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

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

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

2 个答案:

答案 0 :(得分:6)

  

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

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

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

答案 1 :(得分:1)

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

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

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