我在下面加入了连接,我将返回什么类型/类来保留所有属性?这是NorthWind数据库,我认为大多数人都熟悉它。
var q =
from a in db.GetTable<Order_Detail>()
join b in db.GetTable<Product>() on a.ProductID equals b.ProductID
select a;
答案 0 :(得分:2)
您要做的是创建一个新的匿名类型以返回两个值:
var q =
from a in db.GetTable<Order_Detail>()
join b in db.GetTable<Product>() on a.ProductID equals b.ProductID
select new
{
Order = a,
Product = b
};
请注意,如果正确设置了外键,则根本不需要进行显式连接。您应该能够说Order_Detail.Products
来获取Order_Detail中的Product
。
答案 1 :(得分:2)
您有两个选择,您可以选择anonymous type
,就像这样
var q =
from a in db.GetTable<Order_Detail>()
join b in db.GetTable<Product>() on a.ProductID equals b.ProductID
select new { a, b };
这将为您提供一个q
对象a
和b
,例如,您可以这样做:
q.a.SomeOrderInformation
q.b.SomeProductInformation
或者你可以把它选成一个类。
使用您想要的字段创建一个新类:
public class MyNewClass {
public string MyOrderProperty {get; set;}
public string MyProductProperty {get; set;}
}
然后用:
填充它 var q =
from a in db.GetTable<Order_Detail>()
join b in db.GetTable<Product>() on a.ProductID equals b.ProductID
select new MyNewClass { MyProductProperty = b.ProductId, MyOrderProperty = a.OrderName };
更改字段/类名以使其适合我只是因为我无法访问northwind。