データベースから階層的なデータを保存し、コードの最初の方法で読み込もうとしています。Entity Framework 6で階層オブジェクトをロード
マイオブジェクト:
public class Database
{
public int ID { get; set; }
public string name { get; set; }
public virtual List<ElementBase> elements { get; set; }
private string XMLpath;
}
public abstract class ElementBase : ObservableObject
{
[Key]
public int ID { get; set; }
public string name { get; set; }
public ElementBase() { }
public ElementBase(String name)
{
this.name = name;
}
}
public class Element : ElementBase
{
protected string type;
public virtual List<ElementBase> elements { get; set;}
}
public class Attribute : ElementBase
{
private string value;
private byte editable;
}
マイオブジェクト "データベース" は "ElementBase" のリストが含まれています。 「ElementBase」は複合パターン上に構築されています。
私の文脈では私は「データベース」しか持っていません。
public DbSet<NWViewer.Model.Database> Databases { get; set; }
私はそのようなのSQLServerのデータベースを保存します。
public static void add(NW.Database db)
{
using (var dbContext = new DatabaseContext())
{
dbContext.Databases.Add(db);
dbContext.SaveChanges();
}
}
それは、サーバー上のデータベースとElementBaseテーブルを作成します。
そして最後に、私がしようデータベースを取得するには、最初の子要素を持つデータベースのみを取得します。
public static NW.Database update (NW.Database db)
{
using (var dbContext = new DatabaseContext())
{
var originalDB = (from d in dbContext.Databases
where d.ID == db.ID
select d).First();
dbContext.Entry(originalDB).CurrentValues.SetValues(db);
dbContext.SaveChanges();
return originalDB;
}
}
エラー、それは最初の要素の子を取得しよう:
メッセージ「ル賭け事ドールentitésのou L'輸入デfonction 'Element_elements' n'est PASdéfiniDANSルconteneur '' DatabaseContext 'です。 Rapprochéidentificateur場所DANS宇根シーケンス D'échappement、LIGNE 1、コロン73」の文字列
ダヴ