c# - Linq 方法有问题

标签 c# sql entity-framework list linq

我有以下方法:

public List<test_view> SelectTypeAnonimowe(string filtr)
{
    testViewClassDataContext tv = new testViewClassDataContext();

    List<test_view> q7 = tv.test_views
        .Where(w => w.FirstName.StartsWith("H") && w.Type == filtr)
        .Select(p => new {p.AutoName, p.LastName })
        .ToList();

     return q7;
}

我的错误: enter image description here

请告诉我哪里出了问题?

最佳答案

这是因为您将匿名类型强加到您的test_view 类型中。您应该创建 test_view 结果:

List<test_view> q7 = tv.test_views
    .Where(w => w.FirstName.StartsWith("H") && w.Type == filtr)
    .Select(p => new test_view(p.AutoName, p.LastName))
    .ToList();

话虽这么说,您的test_view 应该有一个将两个变量作为输入的构造函数。像这样:

public string AutoName {get; private set;}
public string LastName {get; private set;}
public test_view(string autoName, string lastName){
    AutoName = autoName;
    LastName = lastName;
}

请注意,上面的选项不适用于 LINQ to entities 因为 LINQ to entities 需要无参数构造函数。或者,只要您的 test_view 具有以下两个属性:

public string AutoName {get; set;} //public property here
public string LastName {get; set;} //public property here
public test_view(){ //parameterless constructor here
}

您也可以像这样初始化属性(连同 test_view 创建):

List<test_view> q7 = tv.test_views
    .Where(w => w.FirstName.StartsWith("H") && w.Type == filtr)
    .Select(p => new test_view() {AutoName = p.AutoName, LastName = p.LastName})
    .ToList();

关于c# - Linq 方法有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43889866/

相关文章:

c# - 根据控件可见性调整表单大小

c# - ASP.NET MVC 3 Razor DisplayFor Delegate

mysql - 如何处理错误以便锁定的表在过程中解锁?

c# - Entity Framework 的 If 条件

c# - Entity Framework - 代码优先 - 数据注释 - 不必要的外键列

c# - 将 XDocument 绑定(bind)到 TreeView - 属性不显示

c# - MongoDB C# 数组索引或索引数组的内部项

php - 如何转换基于公斤的数字?

sql - T-SQL存储过程返回google风格 "suggested"搜索结果

entity-framework - Entity Framework 和并行性