我使用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)));
我想自动生成此代码,但我需要先确定输入参数。
答案 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'
我知道这不是您正在寻找的,但它可能提供一种解决您问题的替代方法。