sys*_*ard 7 entity-framework include rawsql dbcontext
我想使用DBContext SqlQuery执行原始sql,然后包含相关的entites.我尝试了以下但它没有加载相关的实体:
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();
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
这不可能.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;
Run Code Online (Sandbox Code Playgroud)
这应该在SQL中生成内部联接,因此过滤器是非活动客户端.
| 归档时间: |
|
| 查看次数: |
5985 次 |
| 最近记录: |