我正在使用Linq进行查询,由Entity Framework数据源提供支持.
我收到以下错误:
LINQ to Entities无法识别方法'Double Sqrt(Double)'方法,并且此方法无法转换为存储表达式.
这是我的函数的简化版本(我的版本更复杂,使用ACos,sin,cos和其他C#Math类函数).
var objects =
from n in context.Products.Where(p => p.r == r)
let a = Math.Sqrt((double)n.Latitude)
where a < 5
orderby a
select n;
return objects.Take(100).ToList();
Run Code Online (Sandbox Code Playgroud)
我认为问题可能与Linq to EF(和SQL数据源)与Linq to SQL相比具有有限的受支持功能集的情况有关.我对此比较陌生,所以我不是百分百肯定.
任何人都可以给我指向正确的方向吗?
干杯,
如何获得Enum值的列表?
例如,我有以下内容:
public enum ContactSubjects
{
[Description("General Question")]
General,
[Description("Availability/Reservation")]
Reservation,
[Description("Other Issue")]
Other
}
Run Code Online (Sandbox Code Playgroud)
我需要做的是将ContactSubject.General作为参数传递,它返回描述的列表.
此方法需要使用任何枚举,而不仅仅是ContactSubject(在我的示例中).签名应该类似于GetEnumDescriptions(枚举值).
我有一个简单的问题,但我不确定处理它的最佳方法是什么.
我有几个不同的设置文件,我有一个GetData方法,它接收'path'参数.
public static CountriesInfo GetDataFromFile(string path)
{
if (!File.Exists(path))
{
return null;
}
try
{
CountriesInfo tempData = new CountriesInfo();
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(tempData.GetType());
StreamReader tempReader = new StreamReader(path);
tempData = (CountriesInfo)x.Deserialize(tempReader);
tempReader.Close();
return tempData;
}
catch
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
重构这个以支持传递对象类型,然后从方法中进行强制转换的最佳方法是什么?现在返回类型(在这个例子中)是CountriesInfo,但是我不希望有几个相同的函数,唯一的区别是返回类型和方法中的转换.
是否最好做一些像传递ref参数并从那个方式获取对象类型的东西?
谢谢!