im using mvc 5 , ef 6.
there 3 tables in code: "leads", "phones", "leadstatus" , junction table "leadphones". want show following properties in index view:
leads.fullname leadstatus.status phones.phoneid how should configure leadcontroller?
public partial class leads { public leads() { this.leadphones = new hashset<leadphones>(); } [key] public int leadid { get; set; } public string title { get; set; } public string firstname { get; set; } public string lastname { get; set; } public string fullname { { return nameprefix + " " + firstname + " " + lastname; } } public int leadstatusid { get; set; } public virtual leadstatus leadstatus { get; set; } public virtual icollection<leadphones> leadphones { get; set; } } and
public partial class phones { public phones() { this.accountphones = new hashset<accountphones>(); this.contactphones = new hashset<contactphones>(); this.employeephones = new hashset<employeephones>(); this.leadphones = new hashset<leadphones>(); } [key] public int phoneid { get; set; } public string phoneno { get; set; } public virtual icollection<leadphones> leadphones { get; set; } } and
public partial class leadphones { [key] public int leadphoneid { get; set; } public int leadid { get; set; } public int phoneid { get; set; } public virtual leads leads { get; set; } public virtual phones phones { get; set; } } and
public partial class leadstatus { public leadstatus() { this.leads = new hashset<leads>(); } [key] public int leadstatusid { get; set; } public string status { get; set; } public virtual icollection<leads> leads { get; set; } } the following not work:
public actionresult index() { var leads = db.leads.include(l => l.leadstatus).include(l => l.leadphones); return view(leads); } the main problem "phoneno". how junction table?
remove leadphoneid column leadphones table -- isn't necessary , cause problems you. remove references leadphones in classes. leads virtual property phones (not leadphones). leadphones has virtual property leads (not leadphones).
after that, should able to:
var leads = db.leads.include(l => l.leadstatus).include(l => l.phones); public partial class lead { public lead() { this.phones = new hashset<phone>(); } [key] public int leadid { get; set; } public string title { get; set; } public string firstname { get; set; } public string lastname { get; set; } public string fullname { { return nameprefix + " " + firstname + " " + lastname; } } public int leadstatusid { get; set; } public virtual leadstatus leadstatus { get; set; } public virtual icollection<phone> phones { get; set; } } public partial class phone { public phone() { this.accountphones = new hashset<accountphones>(); this.contactphones = new hashset<contactphones>(); this.employeephones = new hashset<employeephones>(); this.leads = new hashset<lead>(); } [key] public int phoneid { get; set; } public string phoneno { get; set; } public virtual icollection<lead> leads { get; set; } } public partial class leadstatus { public leadstatus() { this.leads = new hashset<lead>(); } [key] public int leadstatusid { get; set; } public string status { get; set; } public virtual icollection<lead> leads { get; set; } } i've corrected plurality of classes. lead vs leads. class describes single lead, should called lead not leads. phone vs phones.
Comments
Post a Comment