簡體   English   中英

Database.SqlQuery->實體框架對象

[英]Database.SqlQuery -> Entity Framework Objects

我想在實體框架中使用Database.SqlQuery運行自定義的JOIN操作。 我不想使用LINQ進行JOIN,因為它在后端生成高性能SQL方面做得很糟糕,我只想控制它的作用。

所以我的問題是-如何從數據庫的INNER JOIN操作中撤回一組對象(這是從表A到表B的JOIN,並且我想要類型A的對象和類型B的對象) .SqlQuery?

據我所知SqlQuery方法使用屬性名稱將列映射到屬性。

因此,您可以只聲明具有查詢屬性的類,然后將其拆分為AB對。

例:

public class AB
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Title { get; set; }
}

var abs = dbContext.Database.SqlQuery<AB>(@"SELECT A.Id, A.Name, B.Title
                                            FROM A JOIN B ON A.Id = B.Id");

var a_and_bs = from ab in abs
               select new
               {
                   A = new A { ab.Id, ab.Name },
                   B = new B { ab.Title }
               };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM