繁体   English   中英

实体框架:如何将实体的属性映射到存储的proc?

[英]Entity Framework: How to map an entity's property to a stored proc?

假设我有以下实体:

class MyEntity
{
    public int Id {get; set;}

    public int Data {get; set;}
}

其中, Id是主键,而Data字段是从存储的proc中检索的。 存储的proc基于MyEntity.Id字段计算其结果,即,将MyEntity.Id作为这样的参数: GetDataForMyEntity(@MyEntityId) 我正在使用EF Code First方法。 我应该如何设置EntityTypeConfiguration以便实现上述目标?

如果我正确理解您的问题,则MyEntity不是实体(不会保存在数据库中),它表示的数据超过了需要使用存储过程计算的数据。

您的代码应如下所示:

class MyEntity
{
    public int Id {get; set;}

    public int Data {
        get {
            using(var context = new DatabaseContext())
            {   
                var idParam = new SqlParameter("@MyEntityId", Id);

                return context.Database
                    .SqlQuery<int>("GetDataForMyEntity @MyEntityId", idParam).SingleOrDefault();
            }
        };

        // Data should not have a setter!!!
    }
}

请参阅标题“导入返回实体的存储过程”的标题, 网址https://msdn.microsoft.com/zh-cn/data/gg699321.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM