EF6从表到存储过程的映射更改

时间:2015-05-06 14:04:31

标签: c# asp.net-mvc entity-framework stored-procedures

我有一个应用程序已完成并正常工作。 但最近到达的安全指令是每个数据库访问必须通过存储过程完成,它也适用于用户和应用程序。

此应用程序在ASP.NET MVC框架(版本4)上运行 并让ORM宣布这种方式

[Table("TableName1")]
public class TableName1
{
    [Key]
    public int ID { get; set; }

    [MaxLength(250), Index("IX_NameCountry", 1, IsUnique = true, IsClustered = false)]
    public string Name { get; set; }
    ...
}

public ICollection<TableName2> TableName2
        {
            get
            {
                return Database.SqlQuery<TableName2>("SELECT * FROM dbo.TableName2").ToList();
            }
        }

我是MVC和EF的初学者,但我发现EF6支持存储过程映射。重写应用程序最简单的方法是什么? 我非常感谢能够重新映射表映射的一个例子: - )

谢谢

1 个答案:

答案 0 :(得分:1)

请参阅:How to call Stored Procedure in Entity Framework 6 (Code-First)?

作为一方,根据你的应用程序规模,这可能是一个巨大的事情,听起来像是某人对某事作出反应的膝跳反应。

我会巧妙地回答,解释一下,为您(以及您的团队)花费资源来审核现有的代码库会更好,因为在这些代码库中您需要强化数据库并修复任何安全漏洞。请求您的应用进行笔测试。

业务/用户可能存在风险,因为这可能会引入错误 - 想想您将不得不转换为SQL的所有LINQ表达式:)