C# 将模型作为函数参数传递

C# 将模型作为函数参数传递,c#,.net,C#,.net,我在C中找到了下面的代码 var results=context.Database.SqlQuery select*from students.ToList 能给我一份学生和学生的名单吗 var results=context.Database.SqlQuery select*from teachers.ToList 我可以给我一份教师名单。这些看起来很像我。我想做的是将上面的内容变成一个函数,它接受一个模型和一个字符串,这样我就可以传递 GetList(Model myModel, strin

我在C中找到了下面的代码

var results=context.Database.SqlQuery select*from students.ToList

能给我一份学生和学生的名单吗

var results=context.Database.SqlQuery select*from teachers.ToList

我可以给我一份教师名单。这些看起来很像我。我想做的是将上面的内容变成一个函数,它接受一个模型和一个字符串,这样我就可以传递

GetList(Model myModel, string sqlString)
{
    return context.Database.SqlQuery<myModel>(sqlString).ToList();
}

这可能吗?

您正在考虑使用泛型

您的方法如下所示:

GetList<T>(string sqlString)
{
    return context.Database.SqlQuery<T>(sqlString).ToList();
}
然后你会称之为用你的类型替换T,所以:

var x=y.GetListselect*来自表


阅读有关泛型的内容

如果希望函数返回模型类的列表,请让函数使用泛型类型:

用法非常简单:

List<YourModel> yourList = GetList<YourModel>(sqlString);

此函数将为您返回任何类型的列表。

这是一样的。两者都调用相同的方法
List<YourModel> yourList = GetList<YourModel>(sqlString);