2014-04-17 95 views
0

我對現有的SQL DB首先使用EF v6代碼(因此模式相當固定)。基於範圍的EF代碼第一次連接

我需要爲以下類創建一個模型,並且想知道是否有一種方法可以映射Reading和TemperatureCategory之間的關係,其中Reading的溫度落在TemperatureCategory的下限和上限之間?

public class Reading 
{ 
    public int Id { get; set; } 
    ... 
    public double Temperature { get; set; } 
    ... 
    public virtual TemperatureCategory Category { get; set; } 
} 

public class TemperatureCategory 
{ 
    public int Id { get; set; } 
    public string Description { get; set; } 
    public double LowerBound { get; set; } 
    public double UpperBound { get; set; } 
    ...   
} 

非常感謝

回答

0

這是一個有趣的想法,但沒有,你不能。聯合總是基於平等。因此你必須查詢TemperatureCategory。例如

from r in context.Readings 
let category = context.TemperatureCategories 
         .FirstOrDefault(c => c.LowerBound < r.Temperature 
             && c.UpperBound >= r.Temperature) 
select new { Reading = r, Category = category.Description }