在使用EntityFramework时,我A lambda expression with a statement body cannot be converted to an expression tree在尝试编译以下代码时收到错误" ":
Obj[] myArray = objects.Select(o =>
{
var someLocalVar = o.someVar;
return new Obj() {
Var1 = someLocalVar,
Var2 = o.var2 };
}).ToArray();
Run Code Online (Sandbox Code Playgroud)
我不知道错误意味着什么,最重要的是如何解决它.有帮助吗?
我有以下代码:
return this.ObjectContext.BranchCostDetails.Where(
b => b.TarrifId == tariffId && b.Diameter == diameter
|| (b.TarrifId==tariffId && !string.IsNullOrWhiteSpace(b.Diameter))
|| (!b.TarrifId.HasValue) && b.Diameter==diameter);
Run Code Online (Sandbox Code Playgroud)
当我尝试运行代码时出现此错误:
LINQ to Entities无法识别方法'Boolean IsNullOrWhiteSpace(System.String)'方法,并且此方法无法转换为商店表达式."
如何解决这个问题并编写代码比这更好?
关于为什么这可能会破裂的任何想法?
foreach (var p in pp)
{
ProjectFiles projectFile = (ProjectFiles)p;
projectFile.Status = Constants.ProjectFiles_ERROR;
projectFile.DateLastUpdated = DateTime.Now;
context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我读到问题的解决方法是在foreach循环之前一次性检索结果.
但我不这样做吗?"pp"是我案例中的结果集合
我在这个linq表达式中有这个错误:
var naleznosci = (from nalTmp in db.Naleznosci
where nalTmp.idDziecko == idDziec
select new Payments
(
nalTmp.Dziecko.Imie,
nalTmp.Dziecko.Nazwisko,
nalTmp.Miesiace.Nazwa,
nalTmp.Kwota,
nalTmp.RodzajeOplat.NazwaRodzajuOplaty,
nalTmp.RodzajeOplat.TypyOplat.NazwaTypuOplaty,
nalTmp.DataRozliczenia,
nalTmp.TerminPlatnosci
)).ToList();
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题?我尝试任何表达式的组合......:/
在Entity Framework中使用此代码我收到以下错误.我需要获取特定日期的所有行,采用DateTimeStart此格式的DataType类型2013-01-30 12:00:00.000
码:
var eventsCustom = eventCustomRepository.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference)
.Where(x => x.DateTimeStart.Date == currentDateTime.Date);
Run Code Online (Sandbox Code Playgroud)
错误:
base {System.SystemException} = {"The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."}
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决它?
考虑以下记录:
Id F1 F2 F3
-------------------------------------------------
1 Nima 1990 10
2 Nima 1990 11
3 Nima 2000 12
4 John 2001 1
5 John 2002 2
6 Sara 2010 4
Run Code Online (Sandbox Code Playgroud)
我想根据F1字段进行分组并排序依据Id并从类似于这些记录的组的第一个记录中获取所有字段:
Id F1 F2 F3
-------------------------------------------------
1 Nima 1990 10
4 John 2001 1
6 Sara 2010 4
Run Code Online (Sandbox Code Playgroud)
我怎么能用linq做到这一点?
我有两个日期值,一个已存储在数据库中,另一个由用户使用DatePicker选择.用例是从数据库中搜索特定日期.
先前在数据库中输入的值始终具有12:00:00的时间分量,其中从选择器输入的日期具有不同的时间分量.
我只对日期组件感兴趣,并且想要忽略时间组件.
在C#中进行这种比较的方法有哪些?
另外,如何在LINQ中执行此操作?
更新:在LINQ to Entities上,以下工作正常.
e => DateTime.Compare(e.FirstDate.Value, SecondDate) >= 0
Run Code Online (Sandbox Code Playgroud) c# linq linq-to-entities entity-framework datetime-comparison
我有一个时间的魔鬼找到一个比较查询单个项目的不同方法,以及何时使用每个项目.
有没有人有一个比较所有这些的链接,或快速解释为什么你会使用一个而不是另一个?还有更多我不了解的运营商吗?
谢谢.
.net linq linq-to-entities entity-framework entity-framework-4
尝试执行linq查询时出现以下错误:
LINQ to Entities无法识别方法'Boolean IsCharityMatching(System.String,System.String)'方法,并且此方法无法转换为商店表达式.
我已经阅读了很多以前的问题,人们会得到相同的错误,如果我理解正确,那是因为LINQ to Entities需要将整个linq查询表达式转换为服务器查询,因此你不能调用外部方法在里面.我无法将我的场景转换成有效的东西,我的大脑开始融化,所以我希望有人能指出我正确的方向.我们正在使用实体框架和规范模式(我对两者都是新手).
这是使用规范的代码:
ISpecification<Charity> specification = new CharitySearchSpecification(charityTitle, charityReference);
charities = charitiesRepository.Find(specification).OrderBy(p => p.RegisteredName).ToList();
Run Code Online (Sandbox Code Playgroud)
这是linq表达式:
public System.Linq.Expressions.Expression<Func<Charity, bool>> IsSatisfied()
{
return p => p.IsCharityMatching(this.charityName, this.charityReference);
}
Run Code Online (Sandbox Code Playgroud)
这是IsCharityMatching方法:
public bool IsCharityMatching(string name, string referenceNumber)
{
bool exists = true;
if (!String.IsNullOrEmpty(name))
{
if (!this.registeredName.ToLower().Contains(name.ToLower()) &&
!this.alias.ToLower().Contains(name.ToLower()) &&
!this.charityId.ToLower().Contains(name.ToLower()))
{
exists = false;
}
}
if (!String.IsNullOrEmpty(referenceNumber))
{
if (!this.charityReference.ToLower().Contains(referenceNumber.ToLower()))
{
exists = false;
}
}
return exists;
}
Run Code Online (Sandbox Code Playgroud)
如果您需要更多信息,请与我们联系.
非常感谢,
Annelie
.net linq linq-to-entities entity-framework specification-pattern
这不是LINQ to Entities中区分大小写的比较:
Thingies.First(t => t.Name == "ThingamaBob");
Run Code Online (Sandbox Code Playgroud)
如何与LINQ to Entities实现区分大小写的比较?