c# - Populating List with related information -


i have list view populated using controller:

        public actionresult listclubmembershiptype(int clubid)     {         //populate list         var types = s in db.membershiptypes                     (s.clubid == clubid)                     orderby s.type                     select s;         viewbag.typescount = types.count();         var model = types.select(t => new listmembershiptypeviewmodel                 {         type = t.type,         clubid = clubid,         cost = t.cost,         reducedcost = t.reducedcost,         minage = t.minage,         maxage = t.maxage,     });          return partialview("_listclubmembershiptype", model);     } 

i populate variable in view model called reduceddate data pulled 2 other tables, day & month.

ive tried following line:

            reduceddate = db.days.find(t.dayid).daynum + "/" + db.months.find(t.monthid).monthname, 

but gives following error:

additional information: method 'grcwebapp.models.day find(system.object[])' declared on type 'system.data.entity.dbset1[grcwebapp.models.day]' cannot called instance of type 'system.data.entity.core.objects.objectquery1[grcwebapp.models.day]'

what correct way reference data?

the models are:

membershiptype

public int membershiptypeid { get; set; }  [stringlength(150)] [column(typename = "nvarchar")] public string type { get; set; }  [stringlength(350)] [column(typename = "nvarchar")] public string description { get; set; }  [column(typename = "int")] public int clubid { get; set; }  [column(typename = "decimal")] public decimal cost { get; set; }  [column(typename = "decimal")] public decimal reducedcost { get; set; }  [column(typename = "int")] public int? dayid { get; set; }  [column(typename = "int")] public int? monthid { get; set; }  [column(typename = "int")] public int minage { get; set; }  [column(typename = "int")] public int maxage { get; set; }  [column(typename = "bit")] public bool? dormant { get; set; } } 

the day model:

public class day { public int dayid { get; set; }  [column(typename = "int")] public int daynum { get; set; }  public virtual icollection<membershiptype> membershiptypes { get; set; } } 

the month model:

    public class month { public int monthid { get; set; }  [column(typename = "nvarchar")] public string monthname { get; set; }  public virtual icollection<membershiptype> membershiptypes { get; set; } } 

and viewmodel is:

    public class listmembershiptypeviewmodel { [display(name = "type")] public string type { get; set; }  public int clubid { get; set; }  [display(name = "full cost")] public decimal cost { get; set; }  [display(name = "reduced cost")] public decimal reducedcost { get; set; }  [display(name = "reduced from")] public string reduceddate { get; set; }  [display(name = "min age")] public int minage { get; set; }  [display(name = "max age")] public int maxage { get; set; } } 

you have dayid , monthid on membershiptype don't have properties of public day day {get;set;} , public month month {get;set;}

if had properties use reduceddate = t.day.daynum + "/" + t.month.monthname

this might give error since daynum int you'll need convert daynum string. can use sqlfunctions.stringconvert((double)t.day.daynum) this.


Comments

Popular posts from this blog

rewrite asp to php based on asp query -

android - questions about switching from C2DM to GCM -

visual studio 2010 - Error on RDLC Expression -