2

私はLinq to sqlを学んでいて、「Inserting Attached Entity Objects」に出くわしました本から例をテストしましたが、うまく動作しますが、誰かがそれを編集して私の例で機能させる方法を説明してもらえますか

2 つのテーブルがあります (この例では userID を無視します)

トピック -> トピック ID、タイトル

投稿 -> PostID、TopicID、Content

ユーザーが新しいトピックを作成するとき、それに関する詳細を含む新しいトピックとその投稿に関する詳細を含む新しい投稿を作成する必要がありますが、問題は、トピックが必要ないため、これら2つのテーブルを一度にデータベースに挿入する必要があることですそれに割り当てられた投稿はありません。

TopicID を手動で設定して正常に動作するコードを持っていますがif、自動的に割り当てられるように無料で使用したいと考えています

            Topic topic = new Topic
                            {
                                TopicID = 1, //how to remove this line
                                Title = "Test", 
                                Post = new Post
                                    {
                                        TopicID = 1, // and this one
                                        Content = "some text",
                                    }
                            };

再開するには、これらの 2 行を削除して、TipicID が自動的に生成され、両方のレコードがデータベースに挿入されるか、何も挿入されないようにします。

編集:

LooL、もう一度テストしたところ、この 2 行をコメントするだけでこのコードは正常に機能するように見えwhat will happenますが、トピックがデータベースに挿入されたが、コンピューターが突然シャットダウンし、投稿がデータベースに保存されていない場合に備えて、誰かが説明してくれませんか。ロールバックしてトピックを削除しますか、それともデータベースに投稿のないトピックがありますか?

4

1 に答える 1

2

TopicID の明示的な設定をスキップし、Topic プロパティ (ID ではなく Topic のインスタンスへのオブジェクト参照) を使用して関係を構築する必要があります。

それはこのようになります。

Topic topic = new Topic                            
{                                
    Title = "Test"                                                         
};

Post = new Post                                    
{                                        
    Topic = topic,
    Content = "some text"
};   
于 2011-08-07T21:58:51.447 に答える