因缺少主键导致 EF 数据模型排除
在将现有数据库集成到 Entity Framework (EF) 4.0 时,某些表缺少主键的情况很常见。在创建新的实体数据模型时,就会出现这个问题,导致错误消息指出缺少主键,并随后将该表排除在外。
通常认为,必须向受影响的表添加物理主键才能解决此问题。但是,有一种变通方法允许您在不修改其架构的情况下使用这些表。
正如 Tillito 所建议的那样,此变通方法涉及在一个新的 SELECT 语句中修改有问题的视图的 SELECT 语句。通过这种方式包装原始 SELECT 语句,您可以使用 ISNULL 函数指定要用作主键的列。相反,可以使用 NULLIF 函数防止将列指定为主键。
示例:
考虑以下示例:
<code class="language-sql">SELECT ISNULL(MyPrimaryID,-999) MyPrimaryID, NULLIF(AnotherProperty,'') AnotherProperty FROM ( ... ) AS temp</code>
在此示例中,ISNULL 函数强制 EF 将 "MyPrimaryID" 识别为主键,而 NULLIF 函数确保 "AnotherProperty" 不会被视为主键。
通过应用此技术,您可以避免修改数据库架构的需要,并将现有的表无缝集成到您的 EF 数据模型中,从而允许进行数据操作,而无需对物理主键进行修改。
以上是如何在没有物理主键的情况下集成 EF 4.0 数据模型?的详细内容。更多信息请关注PHP中文网其他相关文章!