0

複雑なオブジェクトを複製しようとしています。元のオブジェクトは次のようになります

         Note note = db.Notes.FirstorDefault(n............);

Note オブジェクトにマウスを合わせると、このスタクターが表示されます

注意 | Data.Model.Note

ドリルダウンするとわかります

ベース Data.Model.AnalyNote

もう一度ドリルダウンするとわかります

基本データ.モデル CPObject

変数の「メモ」を見ると、これが最初のレイヤーに表示されます

         +base Data.Model.Note
         +AnalyNotes
          FisYear
          Quarter
          QReport

二層目を見ると

         +base Data.Model.AnalyNote
         +Attachments
         +Classify
          Headline
          IsDraft

三層に行ったら

         +Data.Model.CPObject
          EntryId
         +EntryDate
          Id

これら ( Note、AnalyNote、CPObject ) はそれぞれ別個のモデルです。個別のモデルを作成できますが、それらを埋め込んで元の Note モデルを複製する方法がわかりません。を使用して3つを作成しました

         var NNotes = new Notes()
         {
            data.....
         }

         var AAnote = new AnalyNote()
         {
            data......
         }

         var CPONote = new CPObject()
         {
            data.....
         }

これは私が得た限りです。

4

2 に答える 2

3

ここでは次の 2 つのことが行われています。

  1. あなたのドリルダウンから、Data.Model.Note は Data.Model.AnalyNote を継承しているようです。これは Data.Model.CPObject を継承しています (CPObject の名前空間からピリオドを外したと仮定しています)。したがって、3 つすべてを作成する必要はなく、Data.Model.Note だけを作成する必要があります。MVC がモデリング作業を処理する必要があります。
  2. iCloneableを実装するものから Note を取得している場合、作業は次のように単純です。

    Note note = db.Notes.FirstorDefault(n............); Note duplicate = note.Clone();


以下のコメントから、Note モデルをサブクラス化しようとしているようです。モデルの背後にまだデータがないように思われるので、コード ファーストのアプローチが適している可能性があります。あなたはそのように新しいモデルを作るかもしれません

class Data.Model.NewerNote : Data.Model.Note
{
// the new fields ("variables") would go here.
     public int NoteFoo {get; set;}
     public DateTime NoteFrob {get; set;}
// and so on.
} 

Programming Entity Framework: Code FirstProgramming ASP.NET MVC 4 of use here のような参考書を見つけることができます。

于 2012-10-11T18:19:13.250 に答える
0

Reacher Gilts の回答はあなたの状況を正しく分析していると思いますが、「あるオブジェクトを別のオブジェクトに埋め込む」場合、これは構成と呼ばれ、他の 3 つのクラスのインスタンスであるメンバーの新しいクラスを宣言するのと同じくらい簡単です。

public class OuterNote
{
    NNote nNote;
    AAnote aaNote;
    CPONote cpoNote;

   public OuterNote()
   {
       nNote = new NNote();
       aaNote = new AANote();
       cpoNote = new CPONote();
   }

   // add other constructors or initializers to this class and the others needed
}
于 2012-10-11T18:36:40.823 に答える