Csharp/C#教程:通过Entity Framework中的原始SQL查询获取复杂对象分享


通过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

(0)
上一篇 2021年11月22日
下一篇 2021年11月22日

精彩推荐