通过Entity Framework中的原始SQL查询获取复杂对象
我想使用单个查询从数据库复杂对象中获取。 我们来看下面的例子:
SELECT TableA.*, TableB.* FROM TableA INNER JOIN TableA.B_Id = TableB.Id
和相应的类:
public class QueryResult { public TableA A { get; set; } public TableB B { get; set; } } public class TableA { public int Id { get; set; } public string SomeContentA { get; set; } public int B_Id { get; set; } } public class TableB { public int Id { get; set; } public int SomeContentB { get; set; } }
我想从上面对数据库执行原始SQL查询,并获得具有正确设置A和B属性的QueryResult对象的集合。 到目前为止,我尝试使用SqlQuery方法,但我只设法在A和B属性中获取带有空值的QueryResult对象的集合(显然返回的结果集未正确绑定到属性):
var results = ctx.Database.SqlQuery(\example_query).ToList();
注意:
我正在使用Entity Framework 4.3和SQL Server 2012。
谢谢,艺术
您仍然可以通过将类映射到相应的表并强制LINQ-To-Entities中的连接来使用常规EF构造:
using(var ctx = new MyDbContext()) { return ctx.TableA .Join(ctx.TableB, a=>a.B_Id, b=>b.Id, (a,b)=> new QueryResult{TableA=a, TableB=b}); }
我认为这是唯一的方法,至少达到EF6。
上述就是C#学习教程:通过Entity Framework中的原始SQL查询获取复杂对象分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/958113.html