类型“IEnumerable<>”是在未引用的程序集中定义的.系统运行时

本文关键字:程序集 程序 集中 定义 运行时 系统 引用 IEnumerable 类型 | 更新日期: 2023-09-27 18:30:34

我有一个引用类库的 asp.net 5 Web 应用程序。

该类库使用实体框架 7 执行查询。

public IEnumerable<Member> GetMemberyByFirstName(string firstName)
{
    var members = _context.Members.Where(m => m.FirstName.Contains(firstName));
    return memebers;
}

但是我得到这个编译错误

类型"IEnumerable<>"在不是 引用。必须添加对程序集"System.Runtime, 版本=4.0.0.0,区域性=中性,公钥令牌=b03f5f7f11d50a3a'。 *

类型“IEnumerable<>”是在未引用的程序集中定义的.系统运行时

我已经想出了如何做到这一点,但只是想获得信息。

它非常复杂,围绕着project.json。

非常简短的回答是我将类库中的 project.json 更改为

{
    "version": "1.0.0-*",
    "description": "Member.Business Class Library",
    "authors": [ "bryan" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",
    "frameworks": {
        "dnx451": { },
        "dnxcore50": {  
            "dependencies": {
               "Microsoft.CSharp": "4.0.1-beta-23516"
            }
        }
    },
    "dependencies": {
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
        "Member.DataLayer": "1.0.0-*",
        "Member.Domain": "1.0.0-*",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
    }
}

更多细节可以在这里找到 - http://nodogmablog.bryanhogan.net/2016/01/the-type-is-defined-in-an-assembly-that-is-not-referenced-system-runtime/

尝试返回如下-

var members = _context.Members.Where(m => m.FirstName.Contains(firstName)).ToList();

另外,我不明白函数定义-

void IEnumerable<Member>

如果您想返回IEnumerable<Member>它应该只IEnumerable<Member>而不是void IEnumerable<Member>