“IEnumerable <>”類型在未引用的程序集中定義。 System.Runtime


我有一個引用類庫的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'的引用。 *

一般承認的答案

我已經想出如何做到這一點,但只是希望信息可用。

它非常複雜,圍繞著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();

另外,我不明白功能定義 -

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

如果你想返回IEnumerable<Member>它應該只是IEnumerable<Member>而不是void IEnumerable<Member>





許可下: CC-BY-SA
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因