Tôi có một thủ tục Oracle lưu trữ đơn giản mà được ba thông số thông qua tại, và có một tham số đầu ra:Gọi thủ tục lưu sẵn Oracle bằng Entity Framework với tham số đầu ra?
CREATE OR REPLACE PROCEDURE RA.RA_REGISTERASSET
(
INPROJECTNAME IN VARCHAR2
,INCOUNTRYCODE IN VARCHAR2
,INLOCATION IN VARCHAR2
,OUTASSETREGISTERED OUT VARCHAR2
)
AS
BEGIN
SELECT
INPROJECTNAME || ', ' || INLOCATION || ', ' || INCOUNTRYCODE
INTO
OUTASSETREGISTERED
FROM
DUAL;
END RA_REGISTERASSET;
Tôi cố gắng để sử dụng Entity Framework 6.1 để lấy lại giá trị OutAssetRegistered
, tuy nhiên, tôi nhận được một null sau khi gọi SqlQuery
mà không có ngoại lệ:
public class CmdRegisterAssetDto
{
public string inProjectName { get; set; }
public string inCountryCode { get; set; }
public string inLocation { get; set; }
public string OutAssetRegistered { get; set; }
}
// ---------------------------------- --------------------------
string projectName = "EXCO";
string location = "ANYWHERE";
string countryCode = "XX";
using (var ctx = new RAContext())
{
var projectNameParam = new OracleParameter("inProjectName", OracleDbType.Varchar2, projectName, ParameterDirection.Input);
var countryCodeParam = new OracleParameter("inCountryCode", OracleDbType.Varchar2, countryCode, ParameterDirection.Input);
var locationParam = new OracleParameter("inLocation", OracleDbType.Varchar2, location, ParameterDirection.Input);
var assetRegisteredParam = new OracleParameter("OutAssetRegistered", OracleDbType.Varchar2, ParameterDirection.Output);
var sql = "BEGIN RA.RA_RegisterAsset(:inProjectName, :inCountryCode, :inLocation, :OutAssetRegistered); END;";
var query = ctx.Database.SqlQuery<CmdRegisterAssetDto>(sql, projectNameParam, countryCodeParam, locationParam, assetRegisteredParam
);
assetRegistered = (string)assetRegisteredParam.Value;
}
Tôi đã chiến đấu để làm việc này không có kết quả, đã kiểm tra các blog khác nhau, tất cả các hoạt động crud khác hoạt động, bất cứ ai có thể vui lòng hỗ trợ và chỉ đạo cho tôi nơi tôi đang đi sai?
Tôi có yêu cầu tương tự là bạn có thể làm cho nó được giải quyết? –
Tôi gặp vấn đề tương tự, vui lòng cho tôi biết nếu bạn tìm thấy giải pháp. – pforsthoff