c# - Executing a linq query similar to Dictionary format using groupby to retrieve value from another list -


i have table user , items there exists many many relationship in table list(which contains userid , itemid). trying retrieve each item users. schema tables are

create table dbo.item ( itemid int identity(1,1) not null, item_name varchar(30) not null, primary key (itemid) );  create table dbo.list ( itemid int not null, userid varchar(11) not null, ); 

user table has same schema item table userid of type varchar(11). connection string's name myentities

myentities obj = new myentities(); 

the linq query of format

var test1 = p in obj.user             k in p.item             p.userid == userid //retrieving items particular user             select itemres { itemid = k.itemid }; ienumerable<itemres> itemret = test1.tolist();   var query = p in obj.user             k in p.item             group p.userid itemret.contains(k.itemid) g// error1             select new result { fitemid = g.key, fuserid = g.tolist() }; ienumerable<result>output = query.todictionary(fitemid, fuserid);//error2 

the first query works while second query throws compilation error here errors arise follows

error1:ienumerable not contain definition 'contains'

error2:the name fitemid not exist in current context, name fuserid not exist in current context

the class looks this

public class result {     public int fitemid { get; set; }     public list<string> fuserid { get; set; } } 

i new linq concepts don't know if syntax , definition right or not. wrote first query retrieve list of items. in second query each of item in list, retrieving users of each particular item.

please me in rectifying query....

update1: wrong converting query todictionary format.@gusman , @alex pointed me in right direction converted second query as

 ienumerable<result> query = p in obj.user             k in p.item             group p.userid itemret.contains(k.itemid) g// error1             select new result { fitemid = g.key, fuserid = g.tolist() }; 

and error2 gone

update 2:to remove error1, did @kwan245 said

myentities obj = new myentities(); var test1 = p in obj.user             k in p.item             p.userid == userid //retrieving items particular >user             select k.itemid ; ienumerable<int> itemret = test1.tolist(); 

and second query this

ienumerable<result> query = p in obj.user                             k in p.item                             itemret.contains(k.itemid)                             group p.userid k.itemid g// new error                             select new result { fitemid = g.key, fuserid = g.tolist() }; 

new error popped : linq entities not recognize method 'system.collections.generic.list1[system.string] tolist[string](system.collections.generic.ienumerable1[system.string])' method, , method cannot translated store expression

this might due wrong syntax right answer

1) version of entity framework used ? contains supported after ef4.
2) use functionary todictionary method shown @ https://msdn.microsoft.com/en-us/library/bb549277%28v=vs.95%29.aspx

3) try change code :

myentities obj = new myentities(); var test1 = p in obj.user             k in p.item             p.userid == userid //retrieving items particular >user             select k.itemid ;  ienumerable<int> itemret = test1.tolist(); 

assuming itemid int


Comments

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -