“IEnumerable<>”类型是在一个未被引用的程序集中定义的。System.Runtime。

3
我有一个asp.net 5的Web应用程序,引用了一个类库。
该类库使用Entity Framework 7执行查询。
public IEnumerable<Member> GetMemberyByFirstName(string firstName)
{
    var members = _context.Members.Where(m => m.FirstName.Contains(firstName));
    return memebers;
}

但是我遇到了这个编译错误

'IEnumerable<>'类型是在一个未被引用的程序集中定义的。您必须添加对程序集'System.Runtime,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'的引用。

2个回答

3

我已经弄清楚如何做了,但只是想让信息可用。

这很复杂,涉及到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/

0
尝试像下面这样返回 -
var members = _context.Members.Where(m => m.FirstName.Contains(firstName)).ToList();

另外,我不理解函数定义 -

void IEnumerable<Member>

如果你想要返回 IEnumerable<Member>,应该只写成 IEnumerable<Member> 而不是 void IEnumerable<Member>

基于快速搜索,我找到了这个链接:https://dev59.com/aZHea4cB1Zd3GeqPmkDQ 不确定它是否能帮到你。抱歉,我上面的解决方案可能没什么用 :( - tanmayub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接