我需要添加一个构造函数到一个由EF自动生成的类,根据我的理解,增强由EF创建的任何类,您将创建另一个具有相同名称的部分类,因此例如我的EF生成的类:
public partial class MyCoolClass // EF CLASS
{
public string VariableOne { get; set; }
public string VariableTwo { get; set; }
}
然后创建另一个部分类:
public partial class MyCoolClass // MY CLASS
{
public MyCoolClass(Foo fooObject)
{
VariableOne = fooObject.Var1 // VariableOne doesn't exist
}
}
但是,我无法在EF生成的类中引用VariableOne
和VariableTwo
,你能不这样做吗?
我之所以问这个问题,是因为我的EF类大约有20-30个变量,并且必须声明该类的新实例,然后在代码中填充每个字段是乏味的,我想将设置变量的逻辑移到构造函数中。
缺少变量的唯一原因可能是两个类位于不同的名称空间中。部分类通常是将同一个类拆分为2个或多个文件。
所以,给两个类相同的命名空间,独立于它们的位置,然后再试一次:
文件夹:实体
namespace Same.Namespace.Location
{
public partial class MyCoolClass
{
public string VariableOne { get; set; }
public string VariableTwo { get; set; }
}
}
文件夹:Models(例如…)
namespace Same.Namespace.Location
{
public partial class MyCoolClass
{
public MyCoolClass(Foo fooObject)
{
this.VariableOne = fooObject.Var1;
}
}
}
…所有的属性都在那里。