我尝试在DB上最后插入一个与Web API相关的Item。 我有一个代码来显示所有项目,它可以工作,但如何让最后插入的项目与Web API同步,这是我的问题。 这是我的代码
class Program
{
static HttpClient client = new HttpClient();
static void Main(string[] args)
{
client.BaseAddress = new Uri("http://localhost:1032");
GetAllItemMongoDB();
Console.ReadKey();
}
static async void GetAllItemMongoDB()
{
var jsonResponse = await client.GetStringAsync("api/Symboles");
var SymboleList = await JsonConvert.DeserializeObjectAsync<List<Symbole>>(jsonResponse);
foreach (var p in SymboleList)
{
Console.WriteLine("{0} {1} {2}", p.SymboleID, p.Name, p.Price);
}
}
}
这个想法是控制台应用程序监听Web API,当ID递增时将显示最后插入的项目,例如:
如果数据库有:
1项1价格1
2项2价格2
3项3价格3
我插入了item4,应用程序显示“4 item4 price4”
thnx到#JᴀʏMᴇᴇ,我尝试使用此代码连续显示最后插入的项目。但没有任何显示(我已在数据库中添加数据)
class Program
{
static HttpClient client = new HttpClient();
static void Main(string[] args)
{
client.BaseAddress = new Uri("http://localhost:1032");
GetAllItemMongoDB().Wait();
Console.ReadKey();
}
static async Task GetAllItemMongoDB()
{
var jsonResponse = await client.GetStringAsync("api/Symboles");
var SymboleList = await JsonConvert.DeserializeObjectAsync<List<Symbole>>(jsonResponse);
var mosRecentlyInserted = SymboleList.OrderByDescending(o => o.SymboleID).First();
while (true)
{
var newRecentlyInserted = SymboleList.OrderByDescending(o => o.SymboleID).First();
if (newRecentlyInserted.SymboleID > mosRecentlyInserted.SymboleID)
{
mosRecentlyInserted.SymboleID = newRecentlyInserted.SymboleID;
foreach (var p in SymboleList)
{
if(newRecentlyInserted.SymboleID >= p.SymboleID)
Console.WriteLine("{0} {1} {2}", p.SymboleID, p.Name, p.Price);
}
}
}
}
}
答案 0 :(得分:1)
您可以使用linq获取ID最高的项目,如:
var mostRecentlyInserted = SymboleList.OrderByDescending(o => o.Id).First();
<强>假设:强>
您已添加System.Linq
命名空间。
您的财产名为Id
。