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
}