在Linq或Linq to Sql更准确:是那里的之间的差异== null和IsNullOrEmpty在下面的查询?
From a in context.SomeTable
where a.SomeId.Equals(SomeOtherId)
&& a.SomeOtherColumn == null
Select new .....
Run Code Online (Sandbox Code Playgroud)
&
From a in context.SomeTable
where a.SomeId.Equals(SomeOtherId)
&& string.IsNullOrEmpty(a.SomeOtherColumn)
Select new .....
Run Code Online (Sandbox Code Playgroud) using (AdviserReserveEntities Adv=new AdviserReserveEntities())
{
decimal sum= Adv.Credits.Where(u => u.UserIdRef == 2).Sum(a => a.Amount);
}
Run Code Online (Sandbox Code Playgroud)
如果在发生异常后没有找到记录:
转换为值类型"Int64"失败,因为具体化值为null.结果类型的泛型参数或q`uery必须使用可空类型.
如果没有记录,如何返回0?
到目前为止我所读到的Linq(以及C#)已经进行了区分大小写的检查.
如何使其不敏感?
这是我的代码,它返回0行,我在数据库中有一条记录
bool result = Employee.SearchBy(x => x.Name.Contains("johN schulZ"));
Run Code Online (Sandbox Code Playgroud)
这返回true:
bool result = Employee.SearchBy(x => x.Name.ToLower().Contains("johN schulZ".ToLower()));
Run Code Online (Sandbox Code Playgroud)
后一个解决方案正在运行,但我想知道是否有更方便的方法.
我想在linq中的连接谓词中使用两个字段.如何添加其他字段?
var Result = from Period in context.PeriodCosts
join Name in context.Name on Period.ID equals Name.PeriodID
/*"Problem is here ==> */and
Period.CCID equals Name.CCID"
select Name;
Run Code Online (Sandbox Code Playgroud) 我的代码如下:
void Main()
{
var q = from a in Applicants
where(a.Claims.Any())
select a.Claims.Sum(c => c.TotalClaimAmount());
q.Dump();
}
public static class MyExt
{
public static decimal TotalClaimAmount(this Claim c)
{
var t = c.Accommodations.Sum(a => a.AmountClaimed) +
c.MealAllowances.Sum(ma => ma.AmountClaimed) +
c.Meals.Sum(m => m.AmountClaimed) +
c.Mileages.Sum(mi => mi.AmountClaimed) +
c.Others.Sum(o => o.AmountClaimed) +
c.ParkingTransits.Sum(pt => pt.AmountClaimed) +
c.Travels.Sum(tr => tr.AmountClaimed);
return (decimal)t;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在LinqPad中运行时得到以下问题:
InvalidOperationException:无法将表达式'a.Claims.Sum(c => c.TotalClaimAmount())'转换为SQL,并且无法将其视为本地表达式.
请帮帮我.非常感谢
从下面的sql数据中,我想采用一个独特的EmpId,即最大ID.
ID EmpId DeptId
1 1002 XY
5 1100 ABC
6 1109 EF
7 1100 MN
9 1100 DE
10 1250 CE
11 1250 DJ
12 1100 DE
Run Code Online (Sandbox Code Playgroud)
结果如下所示:
ID EmpId DeptId
1 1002 XY
6 1109 EF
11 1250 DJ
12 1100 DE
Run Code Online (Sandbox Code Playgroud)
这个LINQ应该如何构建?
[WebMethod]
public List<FavoritesTO> getFavorites(string username)
{
using (FavoritesDataContext db = new FavoritesDataContext ())
{
var query = from row in db.Favorites
where username == row.username
select row.imdbId;
// here
}
}
Run Code Online (Sandbox Code Playgroud)
在标记为此处的区域中,查询变量将保留什么,例如,如果我的表中没有与传递给函数的用户名匹配的用户名?
我有一个LINQ查询,想要选择我的实体类型,如下所示:
static void Main(string[] args)
{
using (var currentContext = new MyContext())
{
var x = (from c in currentContext.GeneralAccounts
select new { CType = c.GetType() }).ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
但是这个查询会出错:
错误:LINQ to Entities无法识别方法'System.Type GetType()'方法,并且此方法无法转换为商店表达式.
我有一个linq声明如下,
var v1 = from s in context.INFOONEs group s by s.DATET into xyz select xyz;
Run Code Online (Sandbox Code Playgroud)
我想跟着显示结果
foreach (var x in v1)
{
Console.WriteLine(x.);
}
Run Code Online (Sandbox Code Playgroud)
但是当我输入x时,intellisence没有显示列.
我做错了什么?什么是实现我想要实现的目标的正确方法?
谢谢
是否有可能在Linq SQL(ASP.NET)中执行此SQL语句
Select * form users limit 23,100
Run Code Online (Sandbox Code Playgroud)
没有使用像Loop,For,....
感谢回复.