嘗試投射EF LINQ結果到接口IEnumerable的,東西simialr以下,但不能得到它的工作,任何提示是apreciated:如何將EF Linq結果投影到IEnumerable <IBook>其中Book在IBook中明確實現?
IEnumerable<IBook> books = (from b in context.Library
(select new (Book() as IBook)
{
Id = b.Id,
Title = b.Title
}).AsEnumerable<IBook>;
錯誤:無法轉換Lambda表達式輸入字符串,因爲它是不是委託類型。
PS:這是顯式接口實現,所以我不能只是使用帶有隱式接口實現工作如下:
IEnumerable<IBooks> books = (from b in context.Library
select new Book()
{
Id = b.Id,
Title = b.Title
}).AsEnumerable<IBook>();
謝謝,但是屬性Id和Title明確實現,編譯器抱怨Book沒有Id或Title定義。我已經實現了接口隱含和明確 – Arjang
看到我上面的編輯。我不確定顯式接口是多麼實用。我傾向於遠離它們,因爲它阻止你使用諸如'new Book {Id = b.Id}'這樣的漂亮對象初始化器。 – jonathanpeppers