我需要映射一些外部数据库,我无法修改架构。但是这些表没有主键,而是像Client_ID
,Calendar_ID
这样的列,但它们不是空的,实体可以映射它们,更糟糕的是如果几个表中的这些列可以为null,那么实体框架抛出无法映射的错误。
我的问题是:我可以以某种方式禁用实体跟踪并映射这些表而不使用主键并将列作为null吗?
或者我可以使用代码优先方法,它是否允许我创建并映射没有主键的类和所有列为null?
答案 0 :(得分:1)
实体框架必须有一个关键字段才能工作。它不必是数据库中的真正主键,但它必须是唯一的。如果您的表具有可为空的字段且没有真正的主键,并且您无法修改数据库,则可能实体框架不适合此项目。如果您从未尝试使用空值加载实体,它可能会起作用,但是当您这样做时会抛出错误(正如您所注意到的那样)。