我如何使用类映射来执行存储过程自定义复杂类型

时间:2015-01-11 08:16:59

标签: c# sql-server asp.net-mvc-4 stored-procedures mapping

这是我的自定义课程。我想要使​​用类自定义创建复杂类型。

我正在使用C#,ASP.NET MVC 4.5和SQL Server 2012

谢谢

SQL Server表名:CompanyModel

public class CompanyModel
{
    public int CompanyID { get; set; }        
    public string SubDomain { get; set; }     
    public string CompanyName { get; set; } 
    public string WebSite { get; set; }     
    public string Phone { get; set; }       
    public string Fax { get; set; }       
    public string Address { get; set; }   
}

我不想要它

IEnumerable<spGetCompanies_Result> spGetCompanies();     

我想要这个......这可能吗?

IEnumerable<CompanyModel> spGetCompanies(); 

也许我可以在这里添加课程名称?

http://i.hizliresim.com/vQJkkr.png

这个例子可能是解决方案吗?

[Table(Name = "CompanyModel")]
public class CompanyModel
{
    [Column()]
    public int CompanyID { get; set; }        
    [Column()]
    public string SubDomain { get; set; }    
    [Column()] 
    public string CompanyName { get; set; } 
    [Column()]
    public string WebSite { get; set; }     
    [Column()]
    public string Phone { get; set; }       
    [Column()]
    public string Fax { get; set; }       
    [Column()]
    public string Address { get; set; }   
}

1 个答案:

答案 0 :(得分:0)

我假设您从数据库导入方法时生成方法spGetCompanies。生成类型spGetCompanies_Result时的情况。您可以更改此方法的返回类型,并自动调整映射。

  1. 在设计师中打开您的模型。
  2. 右键单击并打开模型浏览器
  3. 双击“功能导入”下的“存储过程”以打开“功能导入编辑器”(显然您已找到此对话框)
  4. 更改&#39;返回&#39;的集合下的类型到您的实体CompanyModel
  5. 如果您没有将CompanyModel类型作为实体,则可以创建具有所需属性的新ComplexType。那么你就不需要你自己代码中的类型了。

    1. 右键单击设计器并选择Add New ComplexType并定义所有属性。
    2. 在上面的对话框中选择类型
    3. 现在,您应该能够调用返回spGetCompanies的方法IEnumerable<CompanyModel>。同时,您可以将名称更改为GetCompanies,因为模型不应反映您调用存储过程。