C# 如何在我的.net核心项目中执行原始SQL查询?或者如何把它翻译成Linq?
我很难找到任何关于执行原始查询的信息, 我不知道如何将此翻译成LINQ,或者是否可能 我的数据库集中有ContactRecords,但我真的不想这样,我想,我只需要做多次计数。。原始查询 我需要进行多次计数,并使用我创建的一个DB函数“usp_Parse_domain_name_v5”: 这是我在DOT NET CORE应用程序中尝试执行的查询:C# 如何在我的.net核心项目中执行原始SQL查询?或者如何把它翻译成Linq?,c#,asp.net,linq,.net-core,C#,Asp.net,Linq,.net Core,我很难找到任何关于执行原始查询的信息, 我不知道如何将此翻译成LINQ,或者是否可能 我的数据库集中有ContactRecords,但我真的不想这样,我想,我只需要做多次计数。。原始查询 我需要进行多次计数,并使用我创建的一个DB函数“usp_Parse_domain_name_v5”: 这是我在DOT NET CORE应用程序中尝试执行的查询: SELECT dbo.usp_Parse_domain_name_v5(ContactRecord.URL), COUNT(Conta
SELECT
dbo.usp_Parse_domain_name_v5(ContactRecord.URL),
COUNT(ContactRecord.ContactId) AS TOTAL_IMPRESSIONS,
COUNT(DISTINCT ContactAttribute.ContactAttributeValue) AS UNIQUE_IMPRESSIONS,
COUNT(DISTINCT LEADS.LEAD_ID) AS CONVERSIONS,
MAX(convert(varchar(10), ContactRecord.CallStartDateTime, 102)) AS 'DATE'
FROM
ContactAttribute
LEFT JOIN ContactRecord ON ContactRecord.ContactId = ContactAttribute.ContactId AND ContactAttribute.ContactAttributeName = 'IP'
LEFT JOIN LEADS
ON LEADS.LEAD_ID = ContactRecord.ContactId
AND LEADS.EMAIL IS NOT NULL AND LEADS.PHONENUMBER IS NOT NULL
AND LEADS.FIRSTNAME IS NOT NULL AND LEADS.LASTNAME IS NOT NULL
WHERE
convert(varchar(10), ContactRecord.CallStartDateTime, 102) = '2019.05.16'
GROUP BY
dbo.usp_Parse_domain_name_v5(URL)
ORDER BY
COUNT(ContactRecord.ContactId) DESC;
你为什么要用linq解决问题?您还可以编写一个存储过程并调用它。这更容易。如果查询太复杂,我总是使用strored过程而不是linq。这是一个例子 好的,选择的答案是 肯定帮了我 我创建了一个模型并将其添加到我的上下文中: 网关压力和转换
public partial class GatewaysImpressionsAndConversions
{
public string DOMAIN { get; set; }
public int TOTAL_IMPRESSIONS { get; set; }
public int UNIQUE_IMPRESSIONS { get; set; }
public int CONVERSIONS { get; set; }
public string DATE { get; set; }
}
也创建了存储过程
然后我在控制器上要做的就是:
var result = _context.GatewaysImpressionsAndConversions.FromSql("GetGatewaysImpressionsAndConversionsByDay '2019.05.16'");
return View("Statistics", await result.ToListAsync());
在我看来,在高层:
@model IEnumerable
然后循环:
<table class="table" style="display: none" id="results">
<thead>
<tr>
<th>
Domain
</th>
<th>
Total Impressions
</th>
<th>
Unique Impressions
</th>
<th>
Conversions
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.DOMAIN</td>
<td>@item.TOTAL_IMPRESSIONS</td>
<td>@item.UNIQUE_IMPRESSIONS</td>
<td>@item.CONVERSIONS</td>
</tr>
}
</tbody>
</table>
领域
总印象
独特印象
转换
@foreach(模型中的var项目)
{
@item.DOMAIN
@项目.总印象
@item.UNIQUE_印象
@项目.换算
}
非常感谢!如果不是@Y.Y的回答,我现在就要把头撞到墙上了
希望这能帮助其他需要帮助的人
致以最诚挚的问候多谢!我之所以这样做是因为你的评论,我在我自己的答案中说明了我是如何使用存储过程方法完成的。