有作为过程有两个如下所示的Select语句:-

Create PROCEDURE sp_test
As
Begin
   Select RegId,Name from tblRegistration
   Select UserId,UserName from tblUser

End


现在,我有两个表的模型

public class Registration
{
public Int64 RegId { get; set; }
public string Name  { get; set; }
}

public class User
    {
        public Int64 UserId { get; set; }
        public string UserName   { get; set; }
    }


我需要在下面的两个使用“公共类”的模型中填充数据,并且不想多次击中数据库

public class Common
    {
        public List<Registration> registration { get; set; }
        public List<User> user { get; set; }
    }


使用以下代码连接数据库

public T StoredProcedureMultipleResult(string spQuery, object[] parameters)
    {
        using (DbConfig dbContext = new DbConfig())
        {
            string param = "";
            for (int i = 0; i < parameters.Length; i++)
            {
                param = param + "{" + i.ToString() + "},";
            }

            int index = param.LastIndexOf(',');

            string sql = "[" + spQuery + "] " + param.Substring(0, index);

            T t = (T)dbContext.Database.SqlQuery<T>(sql, parameters).AsQueryable<T>();

        }
        var value = typeof(T);
        return (T)Convert.ChangeType(value, typeof(T));
    }

最佳答案

尊敬的Adnan,请使用Dataset进行相同操作。如果不使用ADO.net中的数据集,则无法保留多个表。

关于c# - 在不使用数据集的情况下通过Sql存储过程在ASP.Net MVC模型中保存多个结果集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57290257/

10-11 14:24
查看更多