简体   繁体   中英

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);

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);
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM