我想获取存储过程返回的特定列的列表。在结果集中,两个列名是通用的,一个列名是动态的。
ALTER PROC DBO.GETLANGUAGETRANSLATION(@LANGCODE VARCHAR(10))
AS
BEGIN
DECLARE @QUERY NVARCHAR(255)
SET @QUERY= N'SELECT RESOURCENAME,ENText,'+UPPER(@LANGCODE)+' INTO #TEMP FROM DBO.LANGUAGETRANSLATION SELECT * FROM #TEMP';
EXEC(@QUERY);
END
RESOURCENAME 和 ENText 列在输出中每次都相同,但根据输入参数,第三列名称会有所不同。
我正在使用 Entity Framework Core LINQ 在 C# 中编写以下代码
public async Task<IEnumerable<LanguageTranslation>> GetAsync(string langCode)
{
var context = new LQMSDbContext(AppConstants.DB_CONNECTION_STRING_KEY);
try
{
string query = "GetLanguageTranslation '" + langCode + "'";
var result = context.LanguageTranslation.FromSql(query).ToList();
var result1 = context.Database.ExecuteSqlCommand("GETLANGUAGETRANSLATION @p0", parameters: langCode );
}
catch(Exception ex)
{
string a = ex.Message;
}
return await _dbSet
.Where(x => x.Equals(langCode))
.ToListAsync();
}
我正在尝试使用两种不同的方法调用存储过程GETLANGUAGETRANSLATION 。但是两者都失败并出现以下错误
“FromSql”操作的结果中不存在所需的列“ESText”
其中 ESText 指的是我不是从存储过程返回但存在于表中的列。
我只想在 c# 的结果集中存储几列而不是全部。
任何机构都可以帮助我吗?
注意:它适用于Select * from LanguageTranslation
查询