我正在使用Microsoft Dynamics CRM 2011和ADX Studios。我正在其中一个页面上尝试制作一个小部件,该小部件将显示用户的当前潜在客户数量。我想执行一个LINQ查询,该查询选择潜在客户的数量,其中CRM数据库中潜在客户实体的所有者等于当前用户。我是LINQ的新手,所以我仍在尝试了解查询的语义。到目前为止,我下面的代码可以吸引所有潜在客户。我不太确定如何在“ where”子句中工作,该子句检查所有者ID是否等于当前用户的所有者。
count = context.LeadSet.ToList().Count();
Run Code Online (Sandbox Code Playgroud) 我正在使用EF4查询oracle数据库.
我有2个表POINTS(大约100 000行)COUNTRIES,每个点都有一个countryCode外键
我在存储库中有以下2个方法
public List<PointsTable> GetAll()
{
using (Entities context = new Entities())
{
List<PointsTable> theList = context.POINTS_TABLE.ToList();
return theList;
}
}
public List<PointsTable> GetAllComplete()
{
using (Entities context = new Entities())
{
List<PointsTable> theList = context.POINTS_TABLE.Include("Countries").ToList();
return theList;
}
}
Run Code Online (Sandbox Code Playgroud)
将GetAll需要5秒,但在GetAllComplete需要2分钟!
我使用AsParallel()但收益很荒谬.
我可以加快速度,或者是什么导致它变慢?
我遇到了一些我的代码.我有一个控制器,我打电话从我的数据库中检索公司列表.但是,当我测试它时,我得到一个错误,指出状态:LINQ to Entities无法识别方法System.String ToString()方法,并且此方法无法转换为存储表达式.
我似乎无法找到解决这个问题的方法,并且有人建议我使用foreach循环.
public List<SelectListItem> GetCompanyList()
{
using (var ctx = new Risc_Track_beEntities())
{
var companies = ctx.tblCodeBrokerComps.Where(comp => comp.BrokerCompStatus == 1);
var activeBrokerLocs = companies.Select(b => new SelectListItem
{
Value = b.BrokerCompID.ToString(),
Text = b.BrokerComp
});
return activeBrokerLocs.ToList<SelectListItem>();
}
}
Run Code Online (Sandbox Code Playgroud) 我想对一个实现IEnumerable的VB类进行排序.我不想要一个新对象/ linq.它必须保留为原始对象但已排序.这是一个示例类.
Public Class Person
Public Sub New(ByVal fName As String, ByVal lName As String)
Me.firstName = fName
Me.lastName = lName
End Sub
Public firstName As String
Public lastName As String
End Class
Public Class People
Implements IEnumerable(Of Person)
Private _people() As Person
Public Sub New(ByVal pArray() As Person)
_people = New Person(pArray.Length - 1) {}
Dim i As Integer
For i = 0 To pArray.Length - 1
_people(i) = pArray(i)
Next i
End Sub
Public Function GetEnumerator() As IEnumerator(Of …Run Code Online (Sandbox Code Playgroud) 我知道这是之前部分问过,但没有一个问题完全回答这个问题.
当使用LINQ to SQL从数据库中检索数据时会发生什么?
我读过以下问题:
我不清楚的是:访问数据库的时间点是多少?查询何时运行?
如果我运行以下查询,它将如何转换为SQL查询?
DatabaseDataContext db = new DatabaseDataContext();
var users = from x in db.Users
where x.Rank > 10
orderby x.RegistrationDate descending
select x)
.Skip(pageIndex * recordCount)
.Take(recordCount);
Run Code Online (Sandbox Code Playgroud)
再后来,如果我尝试访问某些用户的某些属性,如何查询构造(这部分是回答在这里)?
var temp = users.ToList()[0].SomeProperty;
Run Code Online (Sandbox Code Playgroud)
基本上,我真正想知道的是LINQ to SQL如何在底层工作,如何从C#语言语句到SQL以及如何优化它.
我有个问题.我在Visual Studio中创建了一个数据实体模型.在林克;
Guid RtuDataId = db.RtuData.Where(x => x.CommunicationUnit.Id == new Guid(ID))
.OrderByDescending(x => x.ReadOn)
.LastOrDefault().Id;
Run Code Online (Sandbox Code Playgroud)
我得到错误;
无法识别方法...方法,并且此方法无法转换为商店表达式.
我在谷歌搜索但我不明白这个错误.
我正在尝试查询用户,包括每个用户的兴趣,但仅限于兴趣符合特定条件的情况:
return db.Users.Include(u => u.Interests.Where(s => s.TenantId == tenantId))
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
Include路径表达式必须引用在类型上定义的导航属性.使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性.
我玩的想法是把外面的东西推到外面,但却无法让它发挥作用.
我正在寻找一个linq表达式,它是FindIndex方法的扩展.它只返回第一个索引.我希望列表中的所有索引满足条件.
例如:
var indx = myList.FindIndex(x => (x <= -Math.PI / 3) || (x >= Math.PI / 3));
Run Code Online (Sandbox Code Playgroud) 我有一份清单 List<string> Rank
列表中的项目排名是
"FF"
"ABC"
"CC"
"FF"
"FF"
Run Code Online (Sandbox Code Playgroud)
我想要一个linq查询返回值,如果存在及其计数,假设如果我搜索"FF"然后它应该返回
value: ff
count: 3
Run Code Online (Sandbox Code Playgroud)
目前我正在使用此查询来查找匹配项
var match = Rank.FirstOrDefault(s => s.Contains("FF"));
Run Code Online (Sandbox Code Playgroud)
并且此查询将相同的值分组并为其分配计数.
var f = Rank.GroupBy(x => x).Select(g => new { Value = g.Key, Count = g.Count() });
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它返回给我完整列表,它看起来像where子句没有
var f = Rank.GroupBy(x => x).Select(g => new { Value = g.Key, Count = g.Count() }).Where(s => Rank.Contains("FF"));
Run Code Online (Sandbox Code Playgroud)
任何人都可以知道为什么第三个查询不起作用?
我有一个 List
List<Myclass> li = new List<Myclass> ();
Run Code Online (Sandbox Code Playgroud)
这里Myclass是
public class Myclass
{
public string ExamName { get; set; }
public Nullable<decimal> Marks { get; set; }
public Nullable<decimal> OutOfMarks { get; set; }
public string GradeMarks { get; set; }
public Nullable<decimal> markEaxmTotalOverAll { get; set; }
public Nullable<decimal> MarksExamTotalMarksTypeWise { get; set; }
public Nullable<decimal> MarksExamOutOfMarksTotalOverAll { get; set; }
public Nullable<decimal> MarksExamOutOfMarksTotalMarksTypeWise { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
li包含近10000个项目
我想markEaxmTotalOverAll在所有10000个项目中将值设置为50
但不想用循环来做,有没有办法更新它,我试过这个代码
li.Select(s => { …Run Code Online (Sandbox Code Playgroud) linq ×10
c# ×9
list ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
database ×1
ienumerable ×1
linq-to-sql ×1
performance ×1
select ×1
sorting ×1
sql ×1
vb.net ×1