我正在尝试复制一个复杂的对象。原始对象就像
Note note = db.Notes.FirstorDefault(n............);
当我将鼠标悬停在Note对象上时,会看到此stuctor
注意| Data.Model.Note
如果深入了解,我会看到
Base Data.Model.AnalyNote
如果再次向下钻取,我会看到
Base Data.Model CPObject
如果查看变量“note”,我会在第一层看到这个
+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模型。我创造了三个 使用
var NNotes = new Notes()
{
data.....
}
var AAnote = new AnalyNote()
{
data......
}
var CPONote = new CPObject()
{
data.....
}
这是我所得到的。
答案 0 :(得分:3)
这里有两件事:
如果您从实施iCloneable的内容中获取您的注释,您的工作可能就像
一样简单 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 First或Programming ASP.NET MVC 4的参考书。
答案 1 :(得分:0)
虽然我认为Reacher Gilts的回答正确地分析了你的情况,如果你想“将一个对象嵌入另一个对象中”,这被称为组合,它就像宣布一个新类的成员是其他三个类的实例一样简单。
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
}