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?要创建一个动态代理,使用实体键检索关系。见: