C# 使用现有类创建动态代理

C# 使用现有类创建动态代理,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我有一个类,它的所有属性都是私有的: public class MyClass { public int Id {get;private set;} public int IdChild {get;private set;} public string SomeProperty {get;private set;} public virtual Child Child {get;private set;} } 因此,要修改它们的属性,我必须:(通过示例) 1) 调用

我有一个类,它的所有属性都是私有的:

public class MyClass
{
   public int Id {get;private set;}
   public int IdChild {get;private set;}
   public string SomeProperty {get;private set;}

   public virtual Child Child {get;private set;}

}
因此,要修改它们的属性,我必须:(通过示例)

1) 调用方法以修改属性:

myclass.SetChild(child);
那么,如何使用动态代理创建实体(我首先使用EF代码)

var myClass = myContext.MyClass.Create();
myClass.Id = 1 // Cannot do that, because this property is "Private Set"

PS:我已经启用了ProxyCreation和LazyLoad

首先,该方法不是构造函数。然后您有了Create方法,它看起来像实际的工厂方法。然后你提到动态代理,虽然听起来你误用了这个概念。最后,您尝试设置一个具有私有setter的属性,但它似乎与代理无关,而是与属性相关。在这么短的问题中有这么多的困惑。事实是,我有一个对象不能以无效状态存在。对于其他属性,可以更改值,但对于ID,如果不公开一个更改此属性的方法,我就不能这样做,这实际上不是一个好主意。如果ID是在插入时自动生成的,为什么要通过编程更改ID?要创建一个动态代理,使用实体键检索关系。见: