C# 实体框架日期解析
我正在尝试执行LINQ到实体的查询(我对EF仍然很陌生,并且正在学习它与LinqToSQL的区别),我正在尝试这样做:C# 实体框架日期解析,c#,entity-framework,C#,Entity Framework,我正在尝试执行LINQ到实体的查询(我对EF仍然很陌生,并且正在学习它与LinqToSQL的区别),我正在尝试这样做: DateTime begin = new DateTime(2011, 1, 1); Apps = (from app in context.Instances where app.ReleaseDate.Date == begin select new ScalpApp {
DateTime begin = new DateTime(2011, 1, 1);
Apps = (from app in context.Instances
where app.ReleaseDate.Date == begin
select new ScalpApp
{
Image = app.Image,
PublisherName = app.PublisherName,
}).ToList();
虽然这在LinqPad中有效,但在我的代码中却没有。引发的异常是:
仅初始值设定项、实体成员和
实体导航属性为
支持
在林克托夫我该怎么做?DB中的字段是完整的DateTime(带有时间代码),我正在尝试仅基于日期进行解析。此字段甚至可能使用日期字段索引:
DateTime begin = new DateTime(2011, 1, 1);
DateTime end = new DateTime(2011, 1, 2);
Apps = (from app in context.Instances
where
(app.ReleaseDate >= begin) and
(app.ReleaseDate < end)
select new ScalpApp
{
Image = app.Image,
PublisherName = app.PublisherName,
}).ToList();
DateTime begin=newdatetime(2011,1,1);
DateTime end=新的DateTime(2011,1,2);
Apps=(来自context.Instances中的app
哪里
(app.ReleaseDate>=开始)和
(应用程序发布日期<结束)
选择新的应用程序
{
Image=app.Image,
PublisherName=app.PublisherName,
}).ToList();
您不能简单地使用“app.ReleaseDate.Data”,但您可以:
var begin = new DateTime(2011, 1, 1);
var end = begin.AddHours(24);
Apps = (from app in context.Instances
where
(app.ReleaseDate >= begin) and
(app.ReleaseDate < end)
select new ScalpApp
{
Image = app.Image,
PublisherName = app.PublisherName,
}).ToList();
var begin=newdatetime(2011,1,1);
var end=begin.AddHours(24);
Apps=(来自context.Instances中的app
哪里
(app.ReleaseDate>=开始)和
(应用程序发布日期<结束)
选择新的应用程序
{
Image=app.Image,
PublisherName=app.PublisherName,
}).ToList();
EF无法将获取Date
部分DateTime
转换为SQL代码。但它有一种方法可以转换为标准截断时间函数:
DateTime begin = new DateTime(2011, 1, 1);
Apps = (from app in context.Instances
where EntityFunctions.TruncateTime(app.ReleaseDate) == begin
select new ScalpApp {
Image = app.Image,
PublisherName = app.PublisherName,
}).ToList();
是的,这就是我最后不得不去的地方。有点恼火,但哦,好吧。尽管如此,我还是开始了。
DateTime begin = new DateTime(2011, 1, 1);
Apps = (from app in context.Instances
where EntityFunctions.TruncateTime(app.ReleaseDate) == begin
select new ScalpApp {
Image = app.Image,
PublisherName = app.PublisherName,
}).ToList();