Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq选择继承类的所有字段和派生类的一些字段_C#_Entity Framework_Linq - Fatal编程技术网

C# Linq选择继承类的所有字段和派生类的一些字段

C# Linq选择继承类的所有字段和派生类的一些字段,c#,entity-framework,linq,C#,Entity Framework,Linq,我有A和B这样的课程: class A { public int a; public int b; public int c; public int d; public int e; public int f; } class B: A{ public int g; } 现在,我想从类型为A的表中进行选择,我是否应该编写如下所有字段: B[] b; using(DBContext db = new DBContext(){

我有
A
B
这样的课程:

class A
{
     public int a;
     public int b;
     public int c;
     public int d;
     public int e;
     public int f;
}
class B: A{
     public int g;
}
现在,我想从类型为
A
的表中进行选择,我是否应该编写如下所有字段:

B[] b;
using(DBContext db = new DBContext(){
      b = db.A.Select(x=> new B{
      a = a,
      b = b,
      c = c,
      d = d,
      f = f,
      e = e,
      g = somevalue,      
});
}

或者有没有一种方法可以说,选择类
a
+字段
g

对代码的描述有点不准确,因此很难找到您真正想要的内容

从您的示例中,我假设您的DbContext有一个类型为a的DbSet:

public class MyDbcontext : DbContext
{
    public DbSet<A> A {get; set;}
    ...
}
现在构造B的好方法是通过一个特殊的构造函数

public B(A, int g)
{
    // fairly straightforward code
}


这些是您实际的表映射类型吗?当然不是。这些都是例子。我有几十个字段的表格。我认为应该有一种方法来实现这一点,重复所有字段似乎都不对
g
的desried值是多少?选择是精细的,它们是否像外键一样链接?如果你不想繁琐的映射,并寻找自动映射程序,请访问automapper.org
public B(A, int g)
{
    // fairly straightforward code
}
public B(parametersToFetchA, parametersToFecthG)
{
     A a = GetTheAThatIWant(parametersToFetchA);
     int g = GetMyG(parametersToFetchG);
     // rest is fairly straightforward
}