Entity Framework - Conditionally display data from a primary table and a history table in a single query

I have the following two tables defined in a SQL Server database:

  CREATE TABLE [dbo].[FinancialItem](
    [Id][bigint] identity(1,1) NOT NULL,
    [TranId] [int] NOT NULL,
    [Installment][int] NOT NULL,
    [Amount][decimal](16,2) NOT NULL
   CONSTRAINT [FinancialItem0] PRIMARY KEY
   (
     [Id] ASC
   )

  CREATE TABLE [dbo].[FinancialItemHistory](
    [Id][bigint] NOT NULL,
    [TranId] [int] NOT NULL,
    [Installment][int] NOT NULL,
    [Amount][decimal](16,2) NOT NULL
   CONSTRAINT [FinancialItemHistory0] PRIMARY KEY
   (
     [Id] ASC
   )

I am using Entity Framework 4.x with POCO objects.

Entity Framework , , . , , . FinancialItem FinancialItemHistory . FinancialItem , FinancialItem FinancialItemHistory ( ). Entity Framework FinancialItemHistory, ? , :

SELECT Id, TranId, Installment, Amount, 0 IsHistorical
FROM FinancialItem
UNION ALL
SELECT Id, TranId, Installment, Amount, 1 IsHistorical
FROM FinancialItemHistory

, , , FinancialItem. (IFinancialItem), Entity Framework , , , Entity Framework IQueryable.

+3
1

union all Concat. , :

var table1 = ...;
var table1 = ...;
var unionAll = table1.Select(x => new { x.ID, ... }).Concat(table2.Select(x => new { x.ID, ... }));
+2

All Articles