簡體   English   中英

實體框架4用ctp5和臟生成的sql

[英]Entity framework 4 with ctp5 and dirty generated sql

我在ef4 ctp5中遇到奇怪的生成SQL的問題。

我有簡單的映射模型:

[Table("post_auction")]
public class PostAuction
{
    [Key,Column(Name="Id"),DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGenerationOption.Identity)]
    public int Id { get; set; }

    [Column(Name = "Number")]
    public int Number { get; set; }

    [Column(Name = "Label")]
    public string Label { get; set; }

    [Column(Name = "Description")]
    public string Description { get; set; }

    [Column(Name = "CategoryId")]
    public int PostAuctionCategoryId { get; set; }

    [Column(Name = "PriceCZK")]
    public int PriceCZK { get; set; }

    [NotMapped]
    public bool IsAuctionPhotoExitst
    {
        get
        {
            if (File.Exists(HttpContext.Current.Server.MapPath("~/Public/Images/Posts/Thumbs/small_" + this.Number + ".jpg")))
                return true;
            return false;
        }
    }
}

我的linq查詢是:

_rovastampDbContext.PostAuctions.Where(x => x.PostAuctionCategoryId == auctionId).OrderBy(x => x.Id).ToList();

Ef4分析器告訴我

SELECT   
    [Project1].[Id]          AS [Id],
    [Project1].[Number]      AS [Number],
    [Project1].[Label]       AS [Label],
    [Project1].[Description] AS [Description],
    [Project1].[CategoryId]  AS [CategoryId],
    [Project1].[PriceCZK]    AS [PriceCZK]
FROM
    (SELECT 
         [Extent1].[Id]          AS [Id],
         [Extent1].[Number]      AS [Number],
         [Extent1].[Label]       AS [Label],
         [Extent1].[Description] AS [Description],
         [Extent1].[CategoryId]  AS [CategoryId],
         [Extent1].[PriceCZK]    AS [PriceCZK]
     FROM   
         [dbo].[post_auction] AS [Extent1]
     WHERE  
         [Extent1].[CategoryId] = 1 /* @p__linq__0 */) AS [Project1]
     ORDER BY 
         [Project1].[Id] ASC

我的問題很簡單:為什么ef4生成那個復雜的查詢,當正確的時候

SELECT ... 
FROM TABLE 
WHERE CategoryId = 1 
ORDER BY Id ASC

謝謝你的建議 :)

馬丁

編輯:如果我讓EF自動創建數據庫,查詢問題仍然存在...

好問題。 我猜這是一個錯誤,因為我的(edmx生成的)實體框架上下文不像你的那樣產生投影。 我會把它報告為一個bug。

是的,對我來說,看起來像Beta亂碼代碼。 我剛用LINQ-SQL嘗試過,沒有類似的東西。 一定要報告!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM