首页 > 解决方案 > 将模型作为函数参数传递

问题描述

我在 C# 中找到了以下代码。

var results= context.Database.SqlQuery <Student> ("select * from students").ToList();

会给我一份学生名单和

var results= context.Database.SqlQuery <Teacher> ("select * from teachers").ToList();

会给我一份老师的名单。这些似乎与我非常相似。我想要做的是将上面的内容变成一个接受模型和字符串的函数,这样我就可以传递类似的东西

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

这有可能吗?

标签: c#.net

解决方案


您正在研究使用泛型。

你的方法看起来像这样:

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

然后你会称它为T用你的类型替换它,所以:

var list = GetList<MyModel>("select * from table");

在此处阅读有关泛型的信息


推荐阅读