2012-05-23 33 views
1

我有以下的EF類:無法轉換的IQueryable <T> AsEnumerable因爲T具有GUID屬性

class Product 
{ 
    public Guid ProductGuid { get; set; } 
    public string ProductName { get; set; } 
} 

從DB類,其中ProductGuid唯一標識符ProductName衍生是nvarchar的

考慮productContext作爲上下文:

var products = productContext.Products; 
productList = products.ToList(); 

OR 

productList = products.AsEnumerable(); 

第一指令正確執行了該第二(兩個)啓動在運行時異常(它編譯正確地):

無法轉換的類型'System.Guid'鍵入'System.Object'。 LINQ to 實體僅支持投射實體數據模型基元類型。

我試過一切它不起作用。我有Guid字段的其他表,但它從來沒有啓動這樣的例外。原因是什麼?

回答

0

你真的需要在該屬性中使用GUID類型嗎?無論如何,不​​會爲你做串線嗎?

嘗試替換GUID。改用String。

+0

我不能,首先我使用.NET 3.5,因此我不能在LINQ to Entities中使用ToString()和sql函數(在.net 4.0中可用)。如果我將IQueryable轉換爲IEnumerable,我可以使用ToString(),但這是非常棘手的問題 – CiccioMiami

相關問題