0

私は2つの要素SferaとContenutiの間にNN関係があります。

Sferaアイテムには、Contenutiエンティティセットが表示され、Contenutiには、Sferaセットが表示されます。

コードで新しいアイテムを追加するときは、次のような構造を使用します。

using (IndexDB DB = new IndexDB())
        {
            try
            {
                var newContenuto = new Contenuto();
                newContenuto.Cancellato = false;
                newContenuto.PK_Content_ID = tt_content_id;
                newContenuto.URL = URL;
                foreach(long sphere in SphereID)
                {
                    try
                    {
                        var sfere = from sfera in DB.Sfera where sfera.PK_Sfera == sphere select sfera;
                        newContenuto.Sfera.Add(sfere.First());
                        sfere.First().Contenuto.Add(newContenuto);
                    }
                    catch (Exception exc)
                    {
                        return new StandardResponse() {Success = false, Message = exc.Message};
                    }
                }
                DB.AddToContenuto(newContenuto);
                DB.SaveChanges();
                return new StandardResponse() {Success = true};
            }
            catch (Exception e)
            {
                return new StandardResponse() { Success = false, Message = e.Message + e.StackTrace };
            }

DBを見ると、右側の「NN」テーブルにある2つの要素間の関係がよく保存されています。しかし、要素Contenuto.SferaとSfera.Contenutoにアクセスしようとすると、常に空のセットになります。 。

アクセスするには、次のようなことを行います。

using (IndexDB DB = new IndexDB())
        {
            var sfere = from sfera in DB.Sfera where sfera.PK_Sfera == IDSfera && sfera.Attiva select sfera;

            if (!sfere.Any())
            {
                response.Add(new UrlResponse() { Success = false, ErrorMessage = "" });
            }
            var sferaSelezionata = sfere.First();
//HERE sferaSelezionata.Contenuto.Count == 0 even if on DB there are MANY "connections"
}

}

どうすればこれを処理できますか?

どうもありがとうございます!

4

1 に答える 1

1

Include()クエリで使用してみてください。

var sfere = from sfera in DB.Sfera.Include("Contenuto") where sfera.PK_Sfera == IDSfera && sfera.Attiva select sfera; 
于 2012-04-12T15:22:58.610 に答える