2016-12-09 8 views
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個のプラグインが追加されていますが、カテゴリはありません。

enter image description here

enter image description here

答えて

0

私は正確に同じ問題を抱えています。現時点では、カテゴリオブジェクトを構築するときにFKプロパティが埋め込まれた状態で、まずカテゴリをデータベースに追加して、これを克服します。

それはもう...

EDITになって、これが機能しない理由私は見当もつかない:私は新しいものを作成し、私のために固定することを、それを使用して、ApplicationDbContextを拡張する/使用していました。

関連する問題