The*_*ner 0 c# sql database sql-server select
我正试图从我的SQL Server数据库中获取一行.我不知道如何得到它我尝试了很多方法,但我没有得到任何好的解决方案.
databasEntities db = new databasEntities();
var medlem = from medlemar in db.medlemar
where medlemar.namn == "Ali"
select medlemar;
Run Code Online (Sandbox Code Playgroud)
这是我的数据库表Medlemar:
medlem将是一个对象的集合,所以你应该能够使用foreach或.first.
foreach(var m in medlem)
{
var namn = m.namm;
...
}
Run Code Online (Sandbox Code Playgroud)
要么
var m1 = medlem.First();
Run Code Online (Sandbox Code Playgroud)
在 C# 中,var不是无类型类型。它实际上是一种隐式键入对象的方法,而无需键入整个类型名称。
例如:
var someString = "Any String Value";
Run Code Online (Sandbox Code Playgroud)
和
string someString = "Any String Value";
Run Code Online (Sandbox Code Playgroud)
编译为完全相同的 IL。
因此,在您的情况下,LINQ 返回一个IEnumerable<T>集合,其中 T 是对象的类型medlemar。
由于它是一个集合,因此您需要像访问任何其他集合一样访问它。一种可能性是使用foreach
foreach(var m in medlem)
{
//Do Something
}
Run Code Online (Sandbox Code Playgroud)
另一种可能性是调用ToList()然后通过索引访问各个成员:
var medlemList = medlem.ToList();
var namn = medlemList[i].namn; // where i is some specific index in the collection
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想获取集合中的第一个对象,则根据您的用例,您有多种选择:
var firstMedlem = medlem.Single();
var firstMedlem = medlem.First();
var firstMedlem = medlem.SingleOrDefault();
var firstMedlem = medlem.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
上面的每一个都做大致相同的事情,但如果集合有零个或多个对象,则行为会有所不同。
Single()将返回集合中唯一的对象。如果集合包含多个对象或零个对象,则会抛出异常。同样,SingleOrDefault()如果有多个对象,也会抛出异常,但会返回返回的值default(T)(通常为 null,除非 T 是值类型)。
First()并且FirstOrDefault()行为方式相同,First()如果集合为空,则会抛出异常并FirstOrDefault()返回默认值。它们与Single..()方法的不同之处在于,如果集合有多个值,它们将始终返回第一个成员。
所以基本上,FirstOrDefault()除非集合本身为空,否则永远不会抛出异常。其他变体将在一种或多种情况下引发异常,具体取决于IEnumerable<T>集合的内容。
| 归档时间: |
|
| 查看次数: |
15271 次 |
| 最近记录: |