每次启动控制台应用程序时,如何更新表中的信息?
Posted
技术标签:
【中文标题】每次启动控制台应用程序时,如何更新表中的信息?【英文标题】:How can i update information in a table each time i launch my console app? 【发布时间】:2020-12-27 23:24:48 【问题描述】:我想在每次启动控制台应用程序时更新一个表。我的问题是 _exe 是空的,我不知道如何为它分配 DbContext 中的值。有人可以指导我正确的道路吗,我是新手。
class Program
private static readonly ExecutionPerimetreProduitNonLineaireRepository _exe;
static void Main(string[] args)
using (var client = new HttpClient())
client.BaseAddress = new Uri("http://api.atlas.intranet/v1/produits/");
//HTTP GET
var responseTask = client.GetAsync("ayantdroits");
responseTask.Wait();
var result = responseTask.Result;
if (result.IsSuccessStatusCode)
var readTask = result.Content.ReadAsAsync<ExecutionPerimetreProduitNonLineaire[]>();
readTask.Wait();
var perimetreProduits = readTask.Result;
foreach (var perimetreProduit in perimetreProduits)
Console.WriteLine("\"louiseProduitId\":0, \"startDate\":1, \"endDate\":2", perimetreProduit.LouiseProduitId, perimetreProduit.StartDate, perimetreProduit.EndDate);
Console.WriteLine("after pull");
if (perimetreProduits != null)
_exe.DbContext.Database.ExecuteSqlRaw("TRUNCATE TABLE [Acq.ExecutionPerimetreProduitNonLineaire]");
_exe.DbContext.SaveChanges();
if (_exe.DbContext.ExecutionPerimetreProduitNonLineaire == null)
foreach (var perimetreProduit in perimetreProduits)
_exe.DbContext.ExecutionPerimetreProduitNonLineaire.Add(perimetreProduit);
【问题讨论】:
if (_exe.DbContext.ExecutionPerimetreProduitNonLineaire == null)
你检查它的空值,然后你 Add
到它。结局不会很好。
@mjwills 如果我要删除其中的 wtv,是否有理由检查它是否为空?
【参考方案1】:
你已经声明了它,但没有分配任何东西给它。在某些时候你需要创建它:
_exe = new ExecutionPerimetreProduitNonLineaireRepository();
您还需要检查应用程序的配置文件中是否设置了 ConnectionString。
【讨论】:
以上是关于每次启动控制台应用程序时,如何更新表中的信息?的主要内容,如果未能解决你的问题,请参考以下文章
每次构建应用程序时,netbeans 中的 MySQL 表都会被清除