Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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#_Linq_Linq To Entities - Fatal编程技术网

C# 我希望其他人向我解释这段代码

C# 我希望其他人向我解释这段代码,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,我有下面的代码,应该给我一个用户列表。我正在测试“Take”函数来进行分页,但它就是不起作用 using (MyContainer myContainer = new MyContainer()) { // Works var user = myContainer.User.Where(u => u.Name == Name).ToList(); // The "Name" comes from User.Name // myContainer is gen

我有下面的代码,应该给我一个用户列表。我正在测试“Take”函数来进行分页,但它就是不起作用

using (MyContainer myContainer = new MyContainer())
{
    // Works
    var user = myContainer.User.Where(u => u.Name == Name).ToList();
    // The "Name" comes from User.Name
    // myContainer is generated by my edmx he inherits the ObjectContext in the design generated by edmx as it shows below
    //// public partial class MyContainer : ObjectContext

    // Does not work
    var foo = (from t in myContainer.User
               select t.Name).Take(10);

    return user;
}
为什么与第一个如此相似不起作用


Throw exception“无法将Lambda表达式转换为'string'类型,因为它不是委托类型”

不要期望这两个表单工作相同,因为它们是不同的。您可以这样表示功能链中的第二个:

var foo = myContainer.User.Select(u => u.Name).Take(10);

正如所料,它不像第一个表单那样工作,因为当第一个表达式返回
列表时,它返回一个
IEnumerable
,第一个表达式返回一个
用户的列表

第二个表达式返回
Name
s的列表(Name可能是一个字符串)

您可能应该这样做:

var user = myContainer.User.Where(u => u.Name == Name).Take(10).ToList();

作为旁注,我认为分页需要多一点,我想使用.Skip(something).Take(something)

尝试
myContainer.User.Take(10).ToList()
获取前10个用户的列表,或者
myContainer.User.Take(10).选择(iter=>iter.Name).ToList()
获取前10个姓名的列表。

您到底遇到了什么问题?还不清楚,“不起作用”真的是不够的。。。您解释错误消息了吗?
Name
属性的定义是什么?它有一些计算吗?它不是“不工作”,我只是想理解代码。就像上面说的“但是,如果你的动机是“我想让别人向我解释”,那么你可能就没事了。”@IlyaIvanov,正如我在对代码的评论中所说的那样
//Name来自User.Name
你可以看到
User
是由我的edmxThanks生成的表。正在测试它。=)看起来很有希望(我认为是对的,因为我解释了原因。但是你投了你的票。谢谢你的旁注。真的很有帮助现在它变得有意义了。我只是迷路了,没注意到,谢谢!这真是个好建议。