我们目前有一个具有相当大数据库的系统,并且存储过程用于 CUD 和查询。数据集用于从 SP 查询中检索结果。
现在我们正在研究使用实体框架针对同一数据库开发另一个项目。在查询数据库时,存储过程通常会执行大量的连接,以收集一些不在目标表中的字段,而是来自连接表中的数据,这些数据是客户端以某种方式需要的。使用 DataSet 时,SP 返回的所有字段都包含在 DataTable 中。所以 DataTable 实际上并不匹配目标数据库表。
在 EF 中处理这种情况的正确方法是什么?创建我的模型时,实体被映射到每个表,如上所述,这些表有时仅与 SP 的结果匹配。我可以将 SP 查询结果的“附加”字段作为属性添加到实体类中,并让它们由查询填充,但在涉及特定实体类型的 CUD 时排除这些属性?似乎 EF 方式,如果通过 LINQ to Entities 而不是 SP 进行查询,将拥有与连接实体具有关系属性的实体实例,以便通过导航关系属性来使用这些“附加”属性?