在设计C#时,我遇到了一个看似简单的问题 - > SQL数据访问层。
这是我正在尝试做的伪代码:
User.GetOverview()
用户概述包含
之类的内容public class UserOverviewModel()
{
public string Username { get; set; }
public SavedSearchModel[] SavedSearches { get; set; }
public TrackingItemModel[] ItemsToTrack { get; set; }
}
因此 SaveSearchModel 和 TrackingItemModel 都是完全不同的数据库表,并且只有一个 - >与用户的多重关系。
我的问题是,如何从SQL查询中获取所有这些信息?在一天结束时,我试图从REST Api返回这样的内容:
{
"Username": "wakawaka54",
"SavedSearches": [
{ "SearchText" : "40mm" }
{ "SearchText" : "50mm 12v" }
],
"ItemsToTrack": [
{ "ItemID": "1374328575",
"ItemLink" "www.somelink.com" }
{ "ItemID": "357489574",
"ItemLink": "www.someotherlink.com" }
]
}
我应该使用事务并单独返回每个查询吗?这是否会导致我支付与独立查询相同的速度惩罚?
答案 0 :(得分:1)
使用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
然后将返回结果集转换为<select ng-model="selectedCountry" ng-options="o for o in countries[**Position**].Cities | filter:search:strict"></select>
列表,然后使用NewtonSoft JSON
答案 1 :(得分:0)
您可以使用Newtonsoft nuget
这很容易使用。