没有进入"为什么",只需了解继承和我必须使用的:)
我有一个映射到视图的EF6 edmx.其上没有标识列,因此为了使EF映射实体,选择第一个非空列作为PK.这背后的原始想法是只读它不会更新或删除.没有过滤(ODATA位于此之上),唯一 - 我的意思是 - 只使用这种方式select top N *来自实体.
视图中有4条记录.
TypeCode | Contact | UserID | LocaleID | EntityName
---------------------------------------------------------
1 6623 1032 9 Jane
1 6623 1032 9 Jane
1 6623 1032 9 John
1 6623 1032 9 John
Run Code Online (Sandbox Code Playgroud)
我看到的问题是EF将所有4行映射相同.以上所有"约翰"的名字都变成了"简"
好吧,抛开设计决策,并且视图上没有识别记录,为什么EF映射最后两行错误?我最初的想法是,因为"PK"设置为TypeCode它不知道如何做到这一点.但是,为什么只在从数据库中读取结果时才使用键列?我原本以为它只对更新和删除很重要