0
プラグインと関連するカテゴリをMySQLデータベースに保存する必要のある.NETコアを持つ簡単なプログラムを作成しようとしています。EFcoreでデータベースに追加されていないオブジェクトのリスト
これらの2つのクラスが存在する:
public class Plugin
{
public string Name { get; set; }
public string Description { get; set; }
public List<Category> Categories { get; set; }
[Key]
public string ProjName { get; set; }
public string DownloadURL { get; set; }
}
public class Category
{
[Key]
public string UniqueName { get; set; }
public string PrettyName { get; set; }
}
私は、このコンテキストを使用しています:
public class Context : DbContext
{
public DbSet<Plugin> Plugins { get; set; }
public DbSet<Category> Categories { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseMySql(@"Server=XXX");
}
(のHttpClientものなし)単純化されたコードは次のようになります。
データベースを結果として生じるpublic static async Task GetPluginsOnPage(string baseUri)
{
foreach (var plugin in pluginsOnPage)
{
List<Category> categories = new List<Category>();
var nameHtml = "**";
var descHtml = "**";
var projName = "**";
foreach (var x in plugin.***)
{
categories.Add(new Category() {PrettyName = "", UniqueName = "**" });
}
var downloadUri = "**";
await Ctx.Plugins.AddAsync(new Plugin { Categories = categories, Description = descHtml, Name = nameHtml, ProjName = projName, DownloadURL = downloadUri });
}
await Ctx.SaveChangesAsync();
}
:
20個のプラグインが追加されていますが、カテゴリはありません。