我首先尝试使用Entity Framework DB为一个巨大的数据库快速进行报告网站的原型设计。问题是其中一个表没有密钥。我收到了'错误159:EntityType没有定义键'。如果我在模型设计器上添加一个键,我得到'错误3024:必须指定所有键属性的映射'。我的问题是,是否有办法解决此问题而不向表中添加密钥。该表不在我们的控制范围内。
答案 0 :(得分:2)
没有钥匙的巨大桌子?如果不使用全表扫描,您或表所有者将无法在此表中搜索任何内容。此外,如果没有主键,基本上不可能单行使用UPDATE。
您必须创建合成密钥,或要求所有者执行此操作。作为一种变通方法,您可能能够找到一些现有的列(或2-3列),这些列足够独特,可以用作唯一键。如果它是唯一的但没有创建实际索引,那对性能仍然不利 - 你应该创建这样的索引。