如何设置由 Entity Framework 从另一个部分 class 生成的 class 中的变量

How to set the variables in a class that has been generated by Entity Framework from another partial class

我需要向 EF 自动生成的 class 添加一个构造函数,根据我的理解,要增强 EF 创建的任何 class,您需要创建另一个部分 class具有相同的名称,例如我的 EF 生成 class:

public partial class MyCoolClass  // EF CLASS
{
    public string VariableOne { get; set; }
    public string VariableTwo { get; set; }
}

然后我会创建另一个部分 class 作为:

public partial class MyCoolClass  // MY CLASS
{    
   public MyCoolClass(Foo fooObject) 
   {
        VariableOne = fooObject.Var1 // VariableOne doesn't exist
   }
}

但是,我无法在生成的 EF 中引用 VariableOneVariableTwo class,你能不这样做吗?

我问这个问题的原因是因为我的 EF class 有大约 20-30 个变量并且必须声明该 class 的新实例然后填充代码中的每个字段是乏味的,我想将设置变量的逻辑移动到构造函数中。

缺少变量的唯一原因可能是您在不同的命名空间中有两个 classes。部分classes通常是相同的class拆分成2个或更多文件。

所以,给两个 classes 相同的命名空间,独立于它们放置的位置,然后重试:

文件夹:实体

namespace Same.Namespace.Location
{
    public partial class MyCoolClass
    {
        public string VariableOne { get; set; }

        public string VariableTwo { get; set; }
    }
}

文件夹:模型(例如...)

namespace Same.Namespace.Location
{
    public partial class MyCoolClass
    {
        public MyCoolClass(Foo fooObject)
        {
            this.VariableOne = fooObject.Var1; 
        }
    }
}

...并且所有属性又出现了。