我们正在使用EF的som性能问题,我想尝试重写查询到内联sql。但是我遇到了一些困难,可能只是一个菜鸟问题。
假设我有3个类:License,GroupLicense和Product
public class License
{
//stuff
Product MyProduct{get;set}
}
public class GroupLicense:License
{
// more stuff
}
public class Product
{
//product info stuff
}
现在我需要根据一些要求获取一些Grouplicenses。但是使用datacontext和linq这样做需要2分钟。 与此相似的东西
var institutionLicenses = db.GroupLicenses
.Include(lic => lic.Product).Where(x => productIds.Contains(x.Product.Id) && x.LicenseStatus == StatusEnum.Active).ToList();
我想使用与此类似的内联sql进行相同的查询:我加入表格以便所有原始字段都可以。
var gl = db.Database.SqlQuery<GroupLicense>("select * from GroupLicense as g left join Licenses on g.Id =Licenses.Id").ToList();
(这只是示例代码 - 我知道它不起作用:))
但是在执行时,License上的基本产品属性为null,所有原始字段都在那里。
我需要在sql语句中更改哪些内容才能使其正常工作?