Asp.net mvc MVC网格到Excel
我发现这个项目/教程: 而且效果很好!但是,我只能让它与一个模型一起工作。因此,如果我只采用我的组织模式,它会非常有效。但是,我需要通过运行SQL查询来填充GridView。我原以为LINQ到SQL可以工作,但我想不出来 这将使用我的组织模型中的数据加载GridView,并将其发送到视图Asp.net mvc MVC网格到Excel,asp.net-mvc,linq-to-sql,gridview,Asp.net Mvc,Linq To Sql,Gridview,我发现这个项目/教程: 而且效果很好!但是,我只能让它与一个模型一起工作。因此,如果我只采用我的组织模式,它会非常有效。但是,我需要通过运行SQL查询来填充GridView。我原以为LINQ到SQL可以工作,但我想不出来 这将使用我的组织模型中的数据加载GridView,并将其发送到视图 private VAGTCEntities db = new VAGTCEntities(); public ActionResult Index() { ViewBag.Message = "Wel
private VAGTCEntities db = new VAGTCEntities();
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
List<Organization> model = db.Organizations.ToList();
GridView gv = new GridView();
gv.DataSource = model;
gv.DataBind();
Session["Organizations"] = gv;
return View(model);
}
简单!但是,我不知道如何使用LINQtoSQL查询。我需要能够引用多个表。例如,拉入特定县和州的组织的所有地址(OrganizationAddress)以及组织名称(Organization)。我想我必须使用ViewModel,但是我仍然无法填充它
组织模式:
namespace VAGTC.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public partial class Organization
{
public Organization()
{
this.ContactMTMOrganizations = new HashSet<ContactMTMOrganization>();
this.ContactTitles = new HashSet<ContactTitle>();
this.OrganizationAddresses = new HashSet<OrganizationAddress>();
this.OrganizationBusinessTypes = new HashSet<OrganizationBusinessType>();
this.OrganizationCountries = new HashSet<OrganizationCountry>();
this.OrganizationEmails = new HashSet<OrganizationEmail>();
this.OrganizationIndustryCodes = new HashSet<OrganizationIndustryCode>();
this.OrganizationMemberships = new HashSet<OrganizationMembership>();
this.OrganizationNotes = new HashSet<OrganizationNote>();
this.OrganizationPhones = new HashSet<OrganizationPhone>();
this.OrganizationWebsites = new HashSet<OrganizationWebsite>();
}
[Display(Name = "Organization ID:")]
public int OrganizationID { get; set; }
[Display(Name = "Organization Name:")]
public string Name { get; set; }
public virtual ICollection<ContactMTMOrganization> ContactMTMOrganizations { get; set; }
public virtual ICollection<ContactTitle> ContactTitles { get; set; }
public virtual ICollection<OrganizationAddress> OrganizationAddresses { get; set; }
public virtual ICollection<OrganizationBusinessType> OrganizationBusinessTypes { get; set; }
public virtual ICollection<OrganizationCountry> OrganizationCountries { get; set; }
public virtual ICollection<OrganizationEmail> OrganizationEmails { get; set; }
public virtual ICollection<OrganizationIndustryCode> OrganizationIndustryCodes { get; set; }
public virtual ICollection<OrganizationMembership> OrganizationMemberships { get; set; }
public virtual ICollection<OrganizationNote> OrganizationNotes { get; set; }
public virtual ICollection<OrganizationPhone> OrganizationPhones { get; set; }
public virtual ICollection<OrganizationWebsite> OrganizationWebsites { get; set; }
}
}
我将非常感激踢向正确的方向
多谢各位
编辑*
我认为这可以归结为能够填充如下列表:
List<Organization> model = db.Organizations.ToList();
List model=db.Organizations.ToList();
但是来自多个表。仍然在玩ViewModels,但它是空的,因为我不知道如何用Linq to SQL填充ViewModel 本质上,您需要在实体之间执行相当于SQL连接的操作。如果启用了延迟加载,则可以自动访问与主组织实体相关的所有实体。如果没有,您可以使用即时加载来访问相同的数据(例如使用
db.Organizations.Include(o=>o.OrganizationAddress).ToList()
)
也可以使用Linq到实体联接方法。如果要使用ViewModel,可能需要创建一个类来存储组织和相关实体中感兴趣的属性。您只需要从实体对象(在本例中,对于组织集合中的每个项目)填充它的属性。本质上,您需要在实体之间执行相当于SQL联接的操作。如果启用了延迟加载,则可以自动访问与主组织实体相关的所有实体。如果没有,您可以使用即时加载来访问相同的数据(例如使用
db.Organizations.Include(o=>o.OrganizationAddress).ToList()
)
也可以使用Linq到实体联接方法。如果要使用ViewModel,可能需要创建一个类来存储组织和相关实体中感兴趣的属性。您只需要从实体对象中填充它的属性(在本例中,针对组织集合中的每个项目)。您可能也想看看这个:我当然会!非常感谢你,你可能也想看看这个:我当然会的!非常感谢你谢谢你-今晚我要试试这个!谢谢-我今晚就试试这个!
namespace VAGTC.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public partial class Organization
{
public Organization()
{
this.ContactMTMOrganizations = new HashSet<ContactMTMOrganization>();
this.ContactTitles = new HashSet<ContactTitle>();
this.OrganizationAddresses = new HashSet<OrganizationAddress>();
this.OrganizationBusinessTypes = new HashSet<OrganizationBusinessType>();
this.OrganizationCountries = new HashSet<OrganizationCountry>();
this.OrganizationEmails = new HashSet<OrganizationEmail>();
this.OrganizationIndustryCodes = new HashSet<OrganizationIndustryCode>();
this.OrganizationMemberships = new HashSet<OrganizationMembership>();
this.OrganizationNotes = new HashSet<OrganizationNote>();
this.OrganizationPhones = new HashSet<OrganizationPhone>();
this.OrganizationWebsites = new HashSet<OrganizationWebsite>();
}
[Display(Name = "Organization ID:")]
public int OrganizationID { get; set; }
[Display(Name = "Organization Name:")]
public string Name { get; set; }
public virtual ICollection<ContactMTMOrganization> ContactMTMOrganizations { get; set; }
public virtual ICollection<ContactTitle> ContactTitles { get; set; }
public virtual ICollection<OrganizationAddress> OrganizationAddresses { get; set; }
public virtual ICollection<OrganizationBusinessType> OrganizationBusinessTypes { get; set; }
public virtual ICollection<OrganizationCountry> OrganizationCountries { get; set; }
public virtual ICollection<OrganizationEmail> OrganizationEmails { get; set; }
public virtual ICollection<OrganizationIndustryCode> OrganizationIndustryCodes { get; set; }
public virtual ICollection<OrganizationMembership> OrganizationMemberships { get; set; }
public virtual ICollection<OrganizationNote> OrganizationNotes { get; set; }
public virtual ICollection<OrganizationPhone> OrganizationPhones { get; set; }
public virtual ICollection<OrganizationWebsite> OrganizationWebsites { get; set; }
}
}
namespace VAGTC.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public partial class OrganizationAddress
{
[Display(Name = "Street:")]
public string StreetID { get; set; }
[Display(Name = "City:")]
public string CityID { get; set; }
[Display(Name = "Organization ID:")]
public int OrganizationID { get; set; }
[Display(Name = "Country:")]
public string CountryNameID { get; set; }
[Display(Name = "County:")]
public string CountyNameID { get; set; }
[Display(Name = "County State:")]
public string CountyStateID { get; set; }
[Display(Name = "State:")]
public string State { get; set; }
[Display(Name = "Zip-code:")]
public string ZipCode { get; set; }
[Display(Name = "Address Type:")]
public string Type { get; set; }
public virtual Country Country { get; set; }
public virtual County County { get; set; }
public virtual Organization Organization { get; set; }
public string FullAddress
{
get
{
return StreetID + ", " + CityID + ", " + State + " " + ZipCode + ", " + CountryNameID;
}
}
public string FullCounty
{
get
{
return CountyNameID + ", " + CountyStateID;
}
}
}
}
List<Organization> model = db.Organizations.ToList();