编辑
在浏览了一下我自己的代码之后,我意识到问题不在于linq性能问题,而在于我无意中删除了一部分代码。我的阿波罗,谢谢大家
原始帖子
我正在讨论linq到SQL的性能问题。现在我做了这样的事情:
var rslts = datacontext.People.AsQueryable();
foreach(var v in rslts)
list.Add(new PersonModel(v)) //I do this because i need the model to have properties that are not in the linq model
然后将列表分配给wpf
我在NHibernate 3.1中有一个linq查询
var q = from Person p in SessionInstance.Query<Person>()
select p;
return q.ToList();
它有以下错误:“不支持指定的方法"。
有什么问题吗?
Stacktrace是:
at NHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector.GetClassName(IASTNode querySource)
at NHibernate.Hql
域对象,如下所示(请注意,Age属性仅为get )
public class Person
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public int Age
{
get
{
return age;
}
}
private int age;
public Person(int age)
{
this.age = age;
}
}
这是
我认为,使用linq查询对象的结果是非常可读的和很好的。例如:
from person in db.Persons.ToList()
where person.MessageableBy(currentUser) ...
其中,MessageableBy是无法转换为存储表达式(sql)的方法。
public bool MessageableBy(Person sender)
{
// Sender is system admin
if (sender.IsSystemAdmin())
return true;
我需要从运行时分配给var的LINQ中接收一个类型,很明显,我可以自己将变量转换为我的类型,但是我相信LINQ是错误的,(可能缺少了选择?)谁能给我指明正确的方向?谢谢
// there is only one active flag which is true in the collection...
var selected = m_PersonCollection.Where(t => t.Active == true)
// Thinking this is the way it is done...
Person person = selecte
我有这个代码,它在控制台上运行得很好: using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main()
{
MongoClient client = new Mo
既然所有实体都有创建/修改记录的盖章,那么我们是否可以将Person实体视为所有实体的聚合根?
也就是说,所有引用该人的实体都将成为一个集合。
public class Person
{
public virtual int PersonId { get; set; }
public virtual string Lastname { get; set; }
public virtual IList<OrderHeader> CreatedOrders { get; set; }
public virtual IList<OrderHeader
我正在尝试对包含另一个实体列表的实体列表进行排序。我已经为所有实体实现了IComparable,但仍然得到了异常。我见过的所有示例都解决了这样的问题:您有一个列表,并按该列表中的给定字段排序,而不是在您有一个列表列表的情况下。下面的Linq to Objects和Linq to Entities都会发生这个问题。我遗漏了什么?
[TestClass]
public class OrderBy
{
[TestMethod]
public void OrderByTest()
{
var hobbies = new Collection<Hobby&g
我正在尝试将旧的T-SQL查询转换为LINQ。旧查询类似于:
Person
(
personId bigint,
username varchar(18)
)
Phones
(
phoneId bigint,
personId bigint, [FK to Persons.personId]
phoneNumber varchar(30),
phoneType varchar(1) [could be any of" "O", "H", 'Y" or a few
让我的LINQ查询返回我想要使用的对象类型时遇到了一点问题。我已经很接近了,只是需要一点输入。
我有五个表、对象、人员、位置、集合和CollectionEntries。
对象是人员、位置和集合的基类。一个集合有许多CollectionEntries,其中可能包含人员、位置和集合的条目。
给定一个特定的集合,我想编写LINQ查询来检索该集合中的人员。
到目前为止,我已经有了这个,它返回给我一个人员列表(它们对应于CollectionEntries条目,耶!)但我宁愿让它返回People的实例。
var people = collection.CollectionEntries.Where(
我有这两门课
public class Person
{
}
public class Company
{
public List<Person> Persons
{get;set;}
}
挑战:给出一份公司名单(即List<Company> Companies)。使用键dictionary创建一个Person,并将其所属的Company列表作为值。注意,一个Person可以属于多个Companies。
我只对LINQ解决方案感兴趣;蛮力搜索和收集不是我想要的。
public class Person
{
public string Email {get; set;}
public string Name {get; set;}
}
public Report : Dictionary<string, string>
{
public Report()
{
List<Person> list = getData(); // filled with Person's
var realList = list.Where(x => x.Name
linq专家如何将此转换为LINQ。
Public Class Item
{
Public string Name {get;set;}
Public string Value {get;set;}
Public bool IsDis {get;set;}
}
我有这样的收藏品
{
Name ="ABC", Value="x", IsDis= true
Name ="ABC", Value="y", IsDis=false
Name ="ABC1", Valu
我的数据库里有一张藏书的清单。我希望通过查询获取这些集合,创建一个ViewModel并使用它们填充其List属性。
此时,我的代码如下所示:
var collectionList = db.BookCollections.ToList();
var bookCreateViewModel = new BookCreateViewModel()
{
Collection = collectionList
};
ViewModel有一个属性:
public class BookCreateViewModel
{
public List<BookCollection>
我只在一个例子中使用这段代码。假设我有下面的Person类。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace dictionaryDisplay
{
class Person
{
public string FirstName { get; private set;}
public string LastName { get; private set; }
public Person(string firstName, st
这个问题不是关于如何测试数据访问,也不是关于存储库。这是关于的问题,当我想在项目中使用我的POCO类(我用TDD创建的)时,我遇到了这个问题。我的意思是,这是因为Linq对实体的限制(或者可能是我关于类的设计的问题)。
我通过TDD到的课程是下一个(当然是非常简单的):
public class Person{
public int IdPerson{ get; set; }
public string Name { get; set; }
public int Average { get; set; }
}
public class Course{
pub
我希望优化我的LINQ查询,因为尽管它工作正常,但它生成的SQL是复杂和低效的……
基本上,我希望选择订购了所需产品(reqdProdId)的客户(作为CustomerDisplay对象),并使用信用卡号注册(在RegisteredCustomer表中存储为带有外键CustId的一行)
var q = from cust in db.Customers
join regCust in db.RegisteredCustomers on cust.ID equals regCust.CustId
where cust.CustomerProducts.Any(co
我正在尝试使用Dapper进行数据访问(在ASP.NET MVC3 FWIW中)。我有一个T视图(在Server中),如下所示:
SELECT s.*, c.CompanyId AS BreakPoint c.Name AS CompanyName
FROM tblStaff AS s
INNER JOIN tblCompanies AS c ON c.CompanyId = s.CompanyId
太简单了。本质上是一份员工名单,每个员工都有一家公司。
我遇到的问题是,我试图将这个查询的输出映射到我的POCOs上,但是由于视图中的每个字段必须是唯一的(即CompanyName而不是tblSt
我有下面的LINQ方法,它从一个User Control调用并直接转储到一个标准的DataGridView。我的用户希望将其默认排序,首先按DisenrollmentDate排序,然后按Member Name排序。现在,使用下面的代码,它只按DisenrollmentDate进行排序。
BLLCmo.cs
public static DataTable GetAllMembers(Guid workerID)
{
var AllEnrollees = from enrollment in context.tblCMOEnrollments
假设我有100000个Person类型的对象,它们有一个带有生日的date属性。
我将所有对象放在一个List<Person> (或数组)中,也放在一个字典中,在字典中,我将日期作为键,并且每个值都是一个数组/列表,其中的人具有相同的生日。
然后我这样做:
DateTime date = new DateTime(); // Just some date
var personsFromList = personList.Where(person => person.Birthday == date);
var personsFromDictionary = dictionar
我希望基于一个类似于使用枚举时加入它们的公共属性来压缩2个序列的项。怎样才能通过第二次考试?
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
public class SequenceTests
{
private class Entry
{
public Entry(DateTime timestamp, stri
我正在运行下面的代码并接收随后的错误:
代码:
using MongoDB.Bson;
using MongoDB.Driver;
using System.Collections.Generic;
namespace MongoBulkWriteSerializationFailure
{
class Person
{
public string Firstname;
public string Lastname;
}
class DummyClient
{
private IMongoCollec
我试图使用LINQ在我的列表中设置一些值,但不知何故,下面的代码不会设置这些值。
class Person
{
public string name;
public Person(string name)
{
this.name = name;
}
}
List<Person> people = new List<Person>() { new Person("a"), new Person("b") };
people.Select(x => { x.name = "c
这是我的代码:
Program Module_in_module
Use Module_collection
Implicit none
! Something...
End Program Module_in_module
Module Module_collection
Use Number_01
Use Number_02
End Module Module_collection
Module Number_01
Implicit none
! Something......
End Module Number_01
Module Number_02
Use M
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Linq;
using System.Threading.Tasks;
namespace dbtst
{
class person { public int id; public string name;}
class Program
我有以下问题,我几个小时都没有把头弄清楚:
我有几个实体需要过滤。它们都有一个具有相同类型Person的导航属性--尽管在所有这些实体中都不是相同的。
Person实体有一个CompanyRelation-实例列表,它说明了此人与公司的关系
public class Person
{
public Collection<CompanyRelation> CompanyRelations { get; set; }
}
public enum CompanyRelationType
{
Employee,
Manager
}
public class Con
我需要实现一个具有特殊功能的集合。此外,我想将这个集合绑定到一个ListView,因此我最后使用了下面的代码(我在论坛中省略了一些方法以使其更简短):
public class myCollection<T> : INotifyCollectionChanged
{
private Collection<T> collection = new Collection<T>();
public event NotifyCollectionChangedEventHandler CollectionChanged;
public void
我想我从LinqPad文档中了解到,与实体框架相比,它使用了不同的linq转换器。LinqPad实际上至少在一种情况下更有效!详情如下:
LinqPad生成以下简单的sql查询:
SELECT [t0].[personId]
FROM [Person] AS [t0]
WHERE (NOT (([t0].[deleted]) = 1)) AND ([t0].[masterPersonId] = @p0)
ORDER BY [t0].[personId] DESC
对于此C# linq代码:
int? state = null;
string realmId = null;
int? revie
假设我有一个要过滤的对象列表:
using System;
using System.Collections.Generic;
using System.Linq;
public class Person
{
public string Name;
public int Age;
public List<int> Attributes;
}
class HelloWorld
{
static void Main()
{
var p1 = new Person();
p1.Name = "john