在我提交问题之前,请注意我正在使用第三方供应商拥有的现有数据库,因此很遗憾,更改数据库格式不是一种选择。
这是问题所在:我有一个实体映射到一个数据库表,该表有一个 varchar 列,其中包含一对多 csv 格式的外键。这些外键对应于另一个实体类型的 ID。我一直在做的是编写一个函数,从该 csv 列表中创建一个 ID 列表,然后我通过 DBContect 对象搜索该实体。我想做的是映射实体之间的关系。有没有办法做到这一点?谢谢!
在我提交问题之前,请注意我正在使用第三方供应商拥有的现有数据库,因此很遗憾,更改数据库格式不是一种选择。
这是问题所在:我有一个实体映射到一个数据库表,该表有一个 varchar 列,其中包含一对多 csv 格式的外键。这些外键对应于另一个实体类型的 ID。我一直在做的是编写一个函数,从该 csv 列表中创建一个 ID 列表,然后我通过 DBContect 对象搜索该实体。我想做的是映射实体之间的关系。有没有办法做到这一点?谢谢!
不幸的是,如果不更改数据库,就无法做到这一点。EF 是 ORM 工具,但它仍然非常依赖于数据库设计的正确性。在单列中存储多个值甚至打破了第一个数据库正常形式。对于 EF,您包含 csv 数据的列是单个字符串值,您不能对该值建立关系。
顺便提一句。它甚至更复杂,因为该列不能代表标准关系含义中的一对多关系 - 这将要求依赖实体包含您的主实体的 Id,而不是主实体包含所有依赖实体的 Id。