SQL - 概述查询

SQL - 概述查询

问题描述:

在设计C# - > SQL数据访问层时,我遇到了一个看似简单的问题。SQL - 概述查询

下面是什么,我试图做的伪代码:

User.GetOverview() 

用户概况由之类的东西

public class UserOverviewModel() 
{ 
    public string Username { get; set; } 
    public SavedSearchModel[] SavedSearches { get; set; } 
    public TrackingItemModel[] ItemsToTrack { get; set; } 
} 

所以无论是SaveSearchModelTrackingItemModel是完全不同的数据库表,并与用户有一个 - >多重关系。

我的问题是,你如何从SQL查询中获得所有这些信息?在一天结束的时候,我试图从REST API返回是这样的:

{ 
    "Username": "wakawaka54", 
    "SavedSearches": [ 
     { "SearchText" : "40mm" } 
     { "SearchText" : "50mm 12v" } 
    ], 
    "ItemsToTrack": [ 
     { "ItemID": "1374328575", 
      "ItemLink" "www.somelink.com" } 
     { "ItemID": "357489574", 
      "ItemLink": "www.someotherlink.com" } 
    ] 
} 

我应该使用事务,并分别返回每个查询?这是否会导致我支付与独立查询相同的速度惩罚?

可以使用Newtonsoft nuget

这是非常容易使用。

+0

呀序列化我得到的数据之后。我在问如何在SQL或C#中构造这个查询。 –

+0

我是否单独查询每个表并将每个结果加载到数组中,然后将整个事件解析为JSON。或者有什么方法可以收集我需要的一个数据库中的所有数据? –

使用inner join

SELECT U.UserName, S.SavedSearches, I.ItemsToTrack 
FROM tblUsers U INNER JOIN tblSaveSearches S ON U.UserId = S.UserId 
INNER JOIN tblItemToTrack I ON U.UserId = I.UserId 

然后转换返回结果设置为UserOverviewModel列表,然后利用NewtonSoft JSON