实体框架6 - 如何确定存储过程输入参数

时间:2015-06-09 23:04:47

标签: entity-framework entity-framework-6

我使用EF6并且我已经导入了一些存储过程。有没有办法可以通过编程方式确定特定程序的输入参数是什么?我想自动生成一些C#代码来执行任何存储过程,但我首先需要能够确定输入参数是什么。

例如,我目前已导入名为SellerModify的存储过程。我有C#代码来执行这个存储过程,部分原因如下:

DbContext.Database.ExecuteSqlCommand("SellerModify @MarketName, @BankLocationCountryCode, @BankAccountOwnerNam, 
    new SqlParameter("@MarketName", seller.MarketName),
    new SqlParameter("@BankLocationCountryCode", seller.BankLocationCountryCode),                   
    new SqlParameter("@BankAccountOwnerName", seller.BankAccountOwnerName)));

我想自动生成此代码,但我需要先确定输入参数。

1 个答案:

答案 0 :(得分:0)

您正在寻找的是ADO.NET SqlCommandBuilder.DeriveParameters() method的等价物。不幸的是,据我所知,Entity Framework并没有提供类似的东西。

也就是说,假设有一个Microsoft SQL Server数据库,您可以事先查询数据库以获取参数列表。这可以使用类似以下SQL的东西来完成:

select      PARAMETER_NAME, 
            DATA_TYPE
from        information_schema.parameters
where       specific_name = 'SellerModify'

我知道这不是您正在寻找的,但它可能提供一种解决您问题的替代方法。