Had*_*das 2 c# sql entity-framework entity-framework-4
我有一个存储过程在我的asp.net mvc3应用程序中使用Entity Framework:
CREATE PROCEDURE dbo.MinMax
AS
DECLARE @T1 TABLE(MinColorsId int,MAXColorsId int)
INSERT @T1
select MIN(ColorsId) as MinColorsId,MAX(ColorsId) as MAXColorsId
from DiamondInfoes
SELECT * FROM @T1
RETURN
Run Code Online (Sandbox Code Playgroud)
在我的模型中,我有与过程表结果相同的属性名称:
public class colorModel
{
[Display(Name = "MinColorsId")]
public float MinColorsId { get; set; }
[Display(Name = "MaxColorsId")]
public float MaxColorsId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在控制器中我运行存储过程:
private _ModelContainer m_db = new _ModelContainer();
var minmax = m_db.MinMax();
Run Code Online (Sandbox Code Playgroud)
我想设置包含程序结果colorModel的minmax那个?(简而言之,我有很多属性...)
首先,您可以简化存储过程:
CREATE PROCEDURE dbo.MinMax
AS
SELECT
MIN(ColorsId) AS MinColorsId,
MAX(ColorsId) AS MaXColorsId
FROM dbo.DiamondInfoes
Run Code Online (Sandbox Code Playgroud)
拥有该表变量绝对没有必要也没有任何意义 - 它只会给你带来压力TempDB.
接下来 - 如果您使用的是.NET 4.0并使用数据库优先方法 - 您可以从向导将该存储过程导入EDMX模型:

接下来,转到Visual Studio中的模型浏览器,在模型的物理"存储"部分中查找新导入的存储过程.在存储过程中,右键单击并选择Add Function Import:

现在弹出一个对话框,让您有机会选择此存储过程返回的内容 - 在您的情况下,您说您已经有一个表示该结果的类型 - 所以在您的情况下,您应该在下拉列表中找到此类型Entities-选择它并关闭对话框:

您现在应该在您的ObjectContext-derived类上有一个表示此存储过程的方法,并返回您选择的类型的实体.
| 归档时间: |
|
| 查看次数: |
4173 次 |
| 最近记录: |