我有课程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
的所有字段?
答案 0 :(得分:0)
您的代码描述有点不准确,因此很难找到您真正想要的内容。
从您的示例中,我假设您的DbContext具有A类型的DbSet:
public class MyDbcontext : DbContext
{
public DbSet<A> A {get; set;}
...
}
并且您想要使用您可以从DbContext和someValue中的实体获得的A数据构造一个B.
您如何从DbContext中检索A数据的示例不起作用,我无法掌握您想要搜索的内容:按ID检索?来自A?的一个领域。为了克服这一点。我们假设您有一个从A实体表中的正确行获取数据的过程:
public A GetTheAThatIWant(...);
public int GetMyG(...);
现在构建B的简洁方法是通过特殊的构造函数
public B(A, int g)
{
// fairly straightforward code
}
或
public B(parametersToFetchA, parametersToFecthG)
{
A a = GetTheAThatIWant(parametersToFetchA);
int g = GetMyG(parametersToFetchG);
// rest is fairly straightforward
}