在Entity Framework中,您可以像这样...实时运行和绑定(bind)自定义查询。

protected class NitrogenMoisutreContainer
{
    public double MinN { get; set; }
    public double MaxN { get; set; }
    public double MinM { get; set; }
    public double MaxM { get; set; }
}

// ...

var q = dbcontext.Database.SqlQuery<NitrogenMoisutreContainer>(@"SELECT MAX(NitrogenBalance) as MaxN, MIN(NitrogenBalance) as MinN, MAX(FCWaterPercent) as MaxM, MIN(FCWaterPercent) as MinM
                                                                    FROM agZoneProjectionGrowthStages
                                                                    WHERE NitrogenBalance > 0 AND FCWaterPercent > 0").First();

问题是,对我来说,这很困惑。我必须为一个查询和创建该类,以后再也不要将其用于其他任何。结果仅在执行位置的下一行使用。

有没有办法我可以返回匿名类型?即使我必须先声明它,像这样...
var anonItem = new {
    MinN = 0d,
    MaxN = 0d,
    MinM = 0d,
    MaxM = 0d
};

var q = dbcontext.Database.SqlQuery<anonItem.GetType()>("...");

我只是不知道如何将匿名类型的Type传递为T。是否可以?

最佳答案



我不认为这是一个问题。



您可以改为创建tuple

关于c# - 将匿名类型传递为T,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12289487/

10-09 08:19