Tag: anonymous types

将匿名类型转换为DataTable

将匿名类型转换为DataTable的最快方法是什么? 更新:我想从匿名类型获取并填充DataTable。 如果reflection是必要的,我怎么能用reflection来做呢?

LINQ中的匿名类型查询或普通查询

var emps = from x in DB where x.ID = 100 select x; var emp1 = from x1 in DB where x1.ID = 100 select new { x }; 这两个查询之间有什么区别。 如果我们使用匿名类型,性能会增加还是其他任何差异呢?

EntityFramework匿名复合键属性名称冲突

我正在使用EntityFramework 5(或.Net Framework 4.0的4.3) 在我的DbContext对象中,我已经设置了正确的DbSet,并且对象包含彼此正确的引用。 这对我来说并不新鲜,而且事情进展顺利。 现在在这种情况下,我有一些复合键,有时包括表的外键(在这种情况下是对象)。 为此,我在HasKey()的OnModelCreating方法上使用HasKey()函数。 当这些属性具有不同的名称时,没有问题,但是当这些属性具有相同的名称时,无法进行迁移。 一个例子: protected override void OnModelCreating(DbModelBuilder modelBuilder) { // … modelBuilder.Entity().ToTable(“PatientVisits”); modelBuilder.Entity().HasKey(x => new { x.Patient.Code, x.Code }); // … base.OnModelCreating(modelBuilder); } 正如您在提供的代码中所看到的,对象PatientVisit具有名为Code的属性,但只要与不同的患者重复该属性,就可以重复此属性。 实体Patient还有一个名为Code的键。 匿名类型不能有两个推断同一名称的属性(显而易见)。 典型的解决方案是命名匿名类型的属性,如下所示: protected override void OnModelCreating(DbModelBuilder modelBuilder) { // … modelBuilder.Entity().ToTable(“PatientVisits”); modelBuilder.Entity().HasKey(x => new { PatientCode = x.Patient.Code, VisitCode = x.Code }); // […]

匿名类型可以inheritance其他类型吗?

根据StringComparer.OrdinalIgnoreCase属性的MSDN文档: OrdinalIgnoreCase属性实际上返回从StringComparer类派生的匿名类的实例。 这是一个我不熟悉的function – 带inheritance的匿名类型吗? 或者通过“匿名类”,作者只是意味着“从StringComparer派生的内部类,对客户端代码不可见”?

Silverlight – LinqToEntities – 如何返回匿名类型

我不确定我是否正确地走这条路。 我有一个Silverlight应用程序,并使用entity framework的很多。 我有两个实体映射到我的数据库:标题和详细信息。 我想提交一个左外部联接以获取所有标题和详细信息 – 即使标题记录没有详细记录。 这是我想从客户端运行的Linq查询: var query = from head in storeContext.Headers join detail in storeContext.Details on head.HeadId equals details.HeadId into group select new { Desc = head.Description, MyCount = group.Count() }; 由于这是Silverlight,我需要构建我的查询,然后使用来自我的域服务(客户端上下文storeContext.Load()的storeContext.Load()方法将其提交到服务器。 因为这个方法期待一个类型,我不知道如何构造调用以返回匿名类型,因为我在上面? 我做错了吗? 我应该在这样的事情上使用Invoke方法吗? 如果是这样,我如何以及在何处定义我想要返回的类型? 是否有人可以指出我正确的方向我真的应该是它。 谢谢……斯科特

如何处理List 的返回?

可能重复: LINQ to SQL:返回匿名类型? 这是我的代码: class B { public int age { get; set; } public string name { get; set; } } class Program { static List GetList() { List list = new List() { new B(){ age = 10, name = “jaagu” }, new B(){ age = 20, name = “juggu” }, new […]

如何使用Linq和C#3.5从ComboBox中的SelectedItem获取值

我真的错过了匿名类型的东西,因为我无法弄清楚如何处理Combobox.SelectedItem属性。 这是填充combobox的代码,它工作得很好 var stocks = from st in brdc.tb_dStocks join su in brdc.tb_rStockUsers on st.StockID equals su.StockID where su.UserID == userRec.UserID select new { st.StockID, su.StockUserID, st.Ticker }; cboStocks.ItemsSource = stocks; cboStocks.DisplayMemberPath = “Ticker”; 然后,当有人使用cboStockscombobox选择一个项目时,我需要弄清楚该项是什么,但我不知道该怎么做。 显然,这是一个简单的问题,但它让我很困惑。 cboStocks.SelectedItem是一个对象,该对象是Linq创建的匿名类型,但这是我能想到的。

在将此XElement添加到匿名对象之前,如何检查此XElement是否为空?

我正在从XML文件填充匿名对象。 到现在为止, commentary.Elements(“Commentator”) 总是有一个值,所以我从来没有检查过null。 我不得不删除它,现在它在尝试读取该行时失败了。 我正在查看代码,但我不知道要改变什么,因为它被选择为匿名对象的属性。 var genericOfflineFactsheet = new { Commentary = (from commentary in doc.Elements(“Commentary”) select new { CommentaryPage = (string)commentary.Attribute(“page”), BusinessName = (string)commentary.Attribute(“businessName”), Commentator = (from commentator in commentary.Elements(“Commentator”) select new CommentatorPanel // ASP.NET UserControl { CommentatorName = (string)commentator.Attribute(“name”), CommentatorTitle = (string)commentator.Attribute(“title”), CommentatorCompany = (string)commentator.Attribute(“company”) }).FirstOrDefault() }).FirstOrDefault() 问题是,我无法完全删除该行,因为有时候commentary.Elements(“Commentator”) 确实有一个值。 我确定此问题已经处理过,但我看不清楚该做什么。 有任何想法吗?

LINQ Group By投射到非匿名类型?

我有以下LINQ示例: var colorDistribution = from product in ctx.Products group product by product.Color into productColors select new { Color = productColors.Key, Count = productColors.Count() }; 所有这些都有效并且非常有意义。 我想要实现的是将其分组为强类型而不是匿名类型。 例如,我有一个ProductColour类,我想组成一个List 这可能吗? 谢谢

如何将多个linq查询组合到一个结果集中?

我有一个多选复选框。 根据检查的是哪一个,我想将结果合并到一个查询中。 有点像: if (Checkbox1.Checked) { var query1 = from t in table1 … } if (Checkbox2.Checked) { var query2 = from t in table2 … } DataGridView1.DataSource = query1.Union(query2); // obviously doesnt // work since query1 and query2 are not defined in this scope. 知道如何有选择地组合这些吗?