在 LINQ to Entities 查詢中無法構造實體或複雜類型

在編寫EF+Linq的過程中,可能會遇到“在 LINQ to Entities 查詢中無法構造實體或複雜類型”的問題。
解決方法:從原有類型中繼承一個子類,然後創建子類實例
下面是例子:

private static void Main(string[] args)
        {
            Boolean s = false;
            using(Northwind dbo = new Northwind())
            {
                IQueryable<Customers> query;
                if(s)
                {
                    // 錯誤的寫法,會出現 “在 LINQ to Entities 查詢中無法構造實體或複雜類型”錯誤
                    query = from a in dbo.Customers
                            select new Customers()
                            {
                                                            ID=a.ID,
                                Address = a.Address
                            };
                }
                else
                {
                    // 解決方法,從原有類型中繼承一個子類
                    query = from a in dbo.Customers
                            select new CustomerChild()
                            {
                                                            ID=a.ID,
                                Address = a.Address
                            };
                }
                var c = query.ToList();
                Console.WriteLine(c.Count);
                Console.Read();
            }
        }
        private class CustomerChild : Customers { }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章