我已经编写了相当多的代码,使用了在我的数据库中有外键关系提供给我的Linq2Sql表关系。但是,这对于我的单元测试来说证明是有些费力的,因为我必须在我的测试环境中手动设置任何关系。
因此,我想知道是否编写Linq连接而不是依赖关系会给我更容易测试和可能更高效的代码。
var query =
from orderItem in data.OrderItems
select new
{
orderItem.Order.Reference,
orderItem.SKU,
orderItem.Quantity,
};
Console.WriteLine("Relationship Method");
query.ToList().ForEach(x => Console.WriteLine(string.Format("Reference = {0}, {1} x {2}", x.Reference, x.Quantity, x.SKU)));
var query2 =
from orderItem in data.OrderItems
join order in data.Orders
on orderItem.OrderID equals order.OrderID
select new
{
order.Reference,
orderItem.SKU,
orderItem.Quantity,
};
Console.WriteLine();
Console.WriteLine("Join Method");
query2.ToList().ForEach(x => Console.WriteLine(string.Format("Reference = {0}, {1} x {2}", x.Reference, x.Quantity, x.SKU)));
以上两个查询都给出了相同的结果,但从性能和可测试性方面来看,哪一个更好呢?