これは私のクラスIgra
です。これは基本的な属性を持っています。エンティティフレームワークc#
public class Igra
{
public int IgraId { get; set; }
public string imeIgre { get; set; }
public string zvrstIgre { get; set; }
public virtual List<Prodajalna> Prodajalna { get; set; }
}
これは私のクラスProdajalna
であり、基本属性も持っています。
public class Prodajalna
{
public int ProdajalnaId { get; set; }
public string imeProdajalne { get; set; }
public string naslovProdajalne { get; set; }
public int IgraId;
public virtual Igra igra{get;set;
}
これらは、どちらもASMXサービスによって設定されます。今、私のEntity Frameworkのコンテキストでこれを行うとき:
Igra i1 = new Igra() { imeIgre = "WoW", zvrstIgre = "MMORPG",
Prodajalna = new List<Prodajalna>()
};
Igra i2 = new Igra() { imeIgre = "LoL", zvrstIgre = "MOBA",
Prodajalna = new List<Prodajalna>() };
Igra i3 = new Igra() { imeIgre = "Diablo", zvrstIgre = "heh",
Prodajalna = new List<Prodajalna>() };
i1.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Bolha",
naslovProdajalne = "Maribor" });
i1.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj",
naslovProdajalne = "Ljubljana" });
i2.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj2",
naslovProdajalne = "Koper" });
i3.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj2",
naslovProdajalne = "Maribor" });
i3.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj",
naslovProdajalne = "Ljubljana" });
i3.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj2",
naslovProdajalne = "Koper" });
ここで私はいくつかのゲームとストアを追加しました。大したことはありません。今、私はこの関数を実行した後:
List<Prodajalna> vse_prodajalne = gameshop.izpisi_vse_prodajalne();
foreach (Prodajalna p in vse_prodajalne)
Console.WriteLine(p.imeProdajalne);
すべてのお店を書き出すために起こっているので、プログラムを記述します:
Bolha
Nekaj
Nekaj2
Nekaj
Nekaj2
問題はそれだけで書き出す必要があるということです。
Bolha
Nekaj
Nekaj2
私のデータベースでは冗長です。あなたが本当に欲しい
i2.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj2", naslovProdajalne = "Koper" });
i3.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj2", naslovProdajalne = "Koper" });
されています。私は自分のコードを更新しましたが、それはまだ問題は、これらの2線である
public class ProdajalnaVsebujeIgroContext : DbContext
{
public DbSet<Igra> Igre { get; set; }
public DbSet<Prodajalna> Prodajalne { get; set; }
public ProdajalnaVsebujeIgroContext()//help
{
Database.SetInitializer<ProdajalnaVsebujeIgroContext>(new PVIInit());
this.Configuration.ProxyCreationEnabled = false;
this.Configuration.LazyLoadingEnabled = false;
}
public class PVIInit : DropCreateDatabaseAlways<ProdajalnaVsebujeIgroContext>
{
protected override void Seed(ProdajalnaVsebujeIgroContext context)
{
var p = new Prodajalna() { imeProdajalne = "Nekaj2", naslovProdajalne = "Koper" };
ProdajalnaVsebujeIgroContext.
context.SaveChanges();
context.Prodajalne.Add(p);
Igra i1 = new Igra() { imeIgre = "WoW", zvrstIgre = "MMORPG", Prodajalna = new List<Prodajalna>() };
Igra i2 = new Igra() { imeIgre = "LoL", zvrstIgre = "MOBA", Prodajalna = new List<Prodajalna>() };
Igra i3 = new Igra() { imeIgre = "Diablo", zvrstIgre = "heh", Prodajalna = new List<Prodajalna>() };
i1.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Bolha", naslovProdajalne = "Maribor" });
i1.Prodajalna.Add(new Prodajalna() { imeProdajalne = p.imeProdajalne, naslovProdajalne = "Ljubljana" });
i2.Prodajalna.Add(new Prodajalna() { imeProdajalne = p.imeProdajalne, naslovProdajalne = "Koper" });
i3.Prodajalna.Add(new Prodajalna() { imeProdajalne = p.imeProdajalne, naslovProdajalne = "Maribor" });
i3.Prodajalna.Add(new Prodajalna() { imeProdajalne = "Nekaj", naslovProdajalne = "Ljubljana" });
i3.Prodajalna.Add(new Prodajalna() { imeProdajalne = p.imeProdajalne, naslovProdajalne = "Koper" });
context.Igre.Add(i1);
context.Igre.Add(i2);
context.Igre.Add(i3);
base.Seed(context);
あなたの質問は...ですか? – Amy
私の質問の末尾に記載されているように、一度だけ書き出すことにする方法 –