Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将实体框架查询设置为字符串_C#_Sql_Linq_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

C# 如何将实体框架查询设置为字符串

C# 如何将实体框架查询设置为字符串,c#,sql,linq,entity-framework,asp.net-mvc-4,C#,Sql,Linq,Entity Framework,Asp.net Mvc 4,我对实体框架非常陌生。我试图使用它来查询数据库,我想设置一个字符串,该字符串等于该查询的结果 以下是我使用的代码: string UserId = (db.StudentModel.Where(b => b.UserName == strCert)).ToString(); 现在,显然这将UserId设置为与查询相等。如何将UserId设置为与结果相等?使用以下方法: db.StudentModel.FirstOrDefault(b => b.UserName == strCert

我对实体框架非常陌生。我试图使用它来查询数据库,我想设置一个字符串,该字符串等于该查询的结果

以下是我使用的代码:

string UserId = (db.StudentModel.Where(b => b.UserName == strCert)).ToString();
现在,显然这将UserId设置为与查询相等。如何将UserId设置为与结果相等?

使用以下方法:

db.StudentModel.FirstOrDefault(b => b.UserName == strCert).UserId
但最好获取对象并检查null

var user = db.StudentModel.FirstOrDefault(b => b.UserName == strCert);

你的意思是这样的:

string UserId = db.StudentModel.FirstOrDefault(b => b.UserName == strCert).UserId;
或者更安全地说:

var student = db.StudentModel.FirstOrDefault(b => b.UserName == strCert);
if(student != null) 
{
    string UserId = student.UserId;
    /* do something with UserId here */
}

你的意思是,如何从LINQ查询中获取SQL查询?我使用LINQ标记时是否有误?我只想使用上面的查询从数据库中获取一个单元格。该单元格中的文本是我需要UserId来存储的。您需要检查查询是否返回null以避免异常这是一个很好的实现,但我看不到第2行中添加的值。两个问题:1)当我使用它时,它会给我一个“不能隐式地将int转换为string”错误-我甚至不知道int将是什么!2) 你能解释一下为什么UserId出现在命令的末尾吗?它开始看起来像是
UserId
是int类型,而不是OP的示例代码包含的难以解释的字符串类型:D1)你需要添加
.ToString()
(编辑了我的代码,因为我以前不知道
UserId
int类型)。2) 查询返回一个
StudentModel
——我猜是确切的类型——您只需要该模型的
UserId
属性,这就是为什么最后需要
。UserId
。这很尴尬。你说得对。它是数据库中的一个int。非常感谢您指出这一点!哈哈哈