gpt4 book ai didi

c# - 使用 Entity-Framework 时是否可以从查询中返回字符串值?

转载 作者:行者123 更新时间:2023-11-29 01:16:06 25 4
gpt4 key购买 nike

到目前为止,我知道两种查询数据库的方法。其中之一是使用 MySQL 的库;通过声明“MySqlCommand”、“MySqlDataReader”、“MySqlConnection”并使用内置方法。

另一种方法是使用实​​体框架(这是我的首选)。

不过,我在使用后一种方法时遇到了一些问题。我个人归咎于我缺乏知识。似乎在向最终用户传送数据时,Entity-Framework 倾向于使用 ObservableCollection<> 或 List<>。

对我来说,这意味着在 View 中,我将使用 Datagrid 或 List 控件。通常这会很好。

但是,如果我不想混合使用数据网格控件会怎样?如果我想在文本框中传达查询结果怎么办?如何在不牺牲 Entity Framework 的使用的情况下执行以下操作?有可能吗?

        string config = "server=localhost; userid = root; database = databaseName";
MySqlConnection con = new MySqlConnection(config);

MySqlDataReader reader = null;

// Run the select query
string query = "SELECT * FROM students WHERE id = " +id;

MySqlCommand command = new MySqlCommand(query, con);
con.Open();
reader = command.ExecuteReader();

while (reader.Read())
{
// Put the results in the appropriate strings so I can databind them
string studentName = (string)reader["studentName"];

string studentNum = (string)reader["studentNum"];

.....
}
con.Close();

我如何利用 Entity Framework 来做到这一点?

最佳答案

此 SQL 查询的 EF 等效项:

// note, that this leads to SQL injections,
// use parametrized queries instead!
"SELECT * FROM students WHERE id = " +id

将是:

var student = context.Students.Find(id) // this will lookup local data as well

或:

var student = context.Students.Single(_ => _.Id == id)

两者都将返回单个 Student 实例,而不是序列/集合,您可以将 UI 绑定(bind)到它的属性或像往常一样访问它们:

student.StudentName

关于c# - 使用 Entity-Framework 时是否可以从查询中返回字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37344515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com