私は新しいエンティティフレームワークを使いこなしています。ちょうど楽しみのために、以前のサイトのすべてのquerysを新しいサイトやshinny linqに変換したかったのです。しかし、私は本当にこのクエリを把握できません。最小の助けは素晴らしいだろう。SQLをLinqに変換する
私は、それはそれを残している場合、それは入れ子の選択よりであり、その中のSO ..今、私のC#コードでのforeachを扱うことができる変換しようと、クエリが私
DECLARE @Begin DateTime, @End DateTime, @date DateTime, @partnerId int
Set @partnerId = 1
Set @Begin = Cast('2010-01-01' as DateTime)
Set @End = Cast(Dateadd(month, 17, @Begin) as DateTime)
Set @date = @Begin
SET NOCOUNT ON
WHILE (@date <= @End)
BEGIN
SELECT
[PackageId],
@date AS [Date],
[Name],
(ISNULL((SELECT [ReportId] FROM [Uniferon_Reports] WHERE [FK_PartnerId] = @partnerId AND [FK_PackageId] = [Uniferon_Packages].[PackageId] AND [Date] = @date), 0)) AS [ReportId],
(ISNULL((SELECT [UnitsForecast] FROM [Uniferon_Reports] WHERE [FK_PartnerId] = @partnerId AND [FK_PackageId] = [Uniferon_Packages].[PackageId] AND [Date] = @date), 0)) AS [UnitsForecast],
(ISNULL((SELECT [UnitsActual] FROM [Uniferon_Reports] WHERE [FK_PartnerId] = @partnerId AND [FK_PackageId] = [Uniferon_Packages].[PackageId] AND [Date] = @date), 0)) AS [UnitsActual],
(ISNULL((SELECT [RevenueForecast] FROM [Uniferon_Reports] WHERE [FK_PartnerId] = @partnerId AND [FK_PackageId] = [Uniferon_Packages].[PackageId] AND [Date] = @date), 0)) AS [RevenueForecast],
(ISNULL((SELECT [RevenueActual] FROM [Uniferon_Reports] WHERE [FK_PartnerId] = @partnerId AND [FK_PackageId] = [Uniferon_Packages].[PackageId] AND [Date] = @date), 0)) AS [RevenueActual],
(ISNULL((SELECT [UnitsInStock] FROM [Uniferon_Reports] WHERE [FK_PartnerId] = @partnerId AND [FK_PackageId] = [Uniferon_Packages].[PackageId] AND [Date] = @date), 0)) AS [UnitsInStock]
FROM
[Uniferon_Packages][Uniferon_Packages]
WHERE
[PackageId] IN
(SELECT [FK_PackageId] FROM [Uniferon_Partners_Packages_Relation] WHERE [FK_PartnerId] = @partnerId AND [StartDate] <= @date AND ([EndDate] >= @date OR [EndDate] IS NULL))
Set @date = DateAdd(month, 1, @date)
END
SET NOCOUNT OFF
に任意の考えを盗聴されます?
なぜあなたはそれを変更する必要がありますか?複数のツールを使用することはOKです...もしLINQ/EFがそれを難しくするなら、それをIMOに使用しないでください。特にレポートクエリのように見える場合は、おそらく完全なORMは必要ありません。もっと単純なものを使うことを考えましたか?未使用のADO.NET? "dapper"のようなMicro-ORM?私はすべてを意味するものではありません - 私はちょうどこの既存のTSQLを動作させることを意味しています... –