gpt4 book ai didi

entity-framework - EF 4.1 - DBContext SqlQuery 和包含

转载 作者:行者123 更新时间:2023-12-04 07:27:35 26 4
gpt4 key购买 nike

我想使用 DBContext SqlQuery 执行原始 sql,然后包含相关实体。我尝试了以下操作,但没有加载相关实体:

string sql = "Select * from client where id in (select id from activeclient)";
var list = DbContext.Database.SqlQuery<Client>(sql).AsQueryable().Include(c => c.Address).Include(c => c.Contactinfo).ToList();
有什么帮助吗?

最佳答案

这不可能。 Include仅适用于 ESQL 或 linq-to-entities,因为它必须在查询构建期间进行处理以构造正确的 SQL 查询。您不能将 SQL 查询传递给此构造机制。此外,您的代码将导致按原样执行 SQL 查询并尝试调用 Include在结果枚举上。

您还可以使用简单的 linq 查询来获取结果:

var query = from c in context.Clients.Include(c => c.Address).Include(c => c.Contactinfo)
join ac in context.ActiveClients on c.Id equals ac.Id
select c;

这应该在 SQL 中产生内部联接,因此过滤器是非事件客户端。

关于entity-framework - EF 4.1 - DBContext SqlQuery 和包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com