我有一个使用EF4访问SQL Server数据存储库。由于不同的原因,我必须使用SQL Server特定的语法从存储中读取数据(以进行自由文本搜索),因此我必须手动创建SQL代码并通过ExecuteStoreQuery方法发送它。
这很好用,除了查询使用联接请求除主表之外的其他表(主表是我在调用ExecuteStoreQuery时指定为目标实体集的表),并且EF从未将主表的关系属性填充到另一个表中表的数据。
要填补这些关系,有什么特别的事情要做吗?在查询中使用其他EF方法还是使用特殊的表名?
谢谢你的帮助。
最佳答案
执行直接SQL遵循非常简单的规则:它使用结果集中的列在实体化实体中用相同名称填充属性。我想我在某处读到它仅适用于您实现的主要实体(ExecuteStoreQuery
中定义的实体类型=无关系),但现在找不到。我做了几次测试,但实际上并没有填充任何关系。