Search code examples
c#entity-framework-4

How can i add var item in EF?


I have an array that its length is unspecified. Maybe 100 , 110 , ...

for each value i have :

  int a1 = array[0];
    var r1 = from row in db.products
    where row.id == a1
    select row;
    int a2 = array[1];
    var r2 = from row in db.products
    where row.id == a2
    select row;
...

How can i get summation of (r1 + r2 + r3 + ... (= sum))?

After this summation, i want to serialize:

string s1 = js.Serialize(sum);

Solution

  • You can do this in code:

    Table:

    --use your db
    USE [Breaz]
    GO
    /****** Object:  Table [dbo].[theProducts]    Script Date: 5/8/2017 3:49:33 PM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[theProducts](
        [theId] [int] IDENTITY(1,1) NOT NULL,
        [id] [int] NULL,
     CONSTRAINT [PK_theProducts] PRIMARY KEY CLUSTERED 
    (
        [theId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    SET IDENTITY_INSERT [dbo].[theProducts] ON 
    
    GO
    INSERT [dbo].[theProducts] ([theId], [id]) VALUES (1, 5)
    GO
    INSERT [dbo].[theProducts] ([theId], [id]) VALUES (2, 6)
    GO
    INSERT [dbo].[theProducts] ([theId], [id]) VALUES (3, 7)
    GO
    SET IDENTITY_INSERT [dbo].[theProducts] OFF
    GO
    

    program:

    //use your database dbcontext
           using (BreazEntities21 db = new BreazEntities21())
            {
                int[] a1 = { 5, 6 };
                var r1 = (from row in db.theProducts
                         where a1.Contains((int)row.id)
                         select row).ToList();
                int[] a2 = { 7 };
                var r2 = (from row in db.theProducts
                         where a2.Contains((int)row.id)
                         select row).ToList();
                var mergedList = r1.Union(r2).ToList();
                var summation = mergedList.Sum(r => r.id);
                var s1 = new JavaScriptSerializer().Serialize(summation);
            }