首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个表字段可写的LINQ选择

多个表字段可写的LINQ选择
EN

Stack Overflow用户
提问于 2012-02-10 03:39:41
回答 2查看 453关注 0票数 1

我是LINQ的新手,到目前为止我做得很好,但现在坚持这样做。

我有一个LINQ对象绑定到一个DataGridView,让用户编辑包含。对于简单的单表查询,它很好,但是如何构建一个包含多个表的LINQ查询,这样结果仍然是读/写的?

下面是我的意思的一个例子:

代码语言:javascript
复制
    GMR.Data.GMR_Entities GMR = new GMR.Data.GMR_Entities();

    var dt = from Msg in GMR.tblMessages
             join lang in GMR.tblDomVals on 1 equals 1//on Msg.pLangueID equals lang.ID
             select Msg;
             //   select new {lang.DescrFr, Msg.Message,Msg.pLangueID } ;

    this.dataGridView1.DataSource = dt;

在这个简单的查询中,如果我在select语句中只返回"Msg“,就可以编辑网格。但是,如果我将select语句替换为select new {lang.DescrFr,Msg.Message,Msg.pLangueID };网格将只是可读的。我很容易理解这是因为查询结果是匿名类型。但是有没有办法让表tblMessage是可写的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-10 04:23:10

尝试创建您自己的类,例如

代码语言:javascript
复制
public class MsgLangInfo
{
 public string langDescFr{get;set;}
 public int pLangueID{get;set;}
}

并在select语句中使用new创建此类的对象,如下所示

代码语言:javascript
复制
select new MsgLangInfo { 
                         langDescFr = lang.DescrFr, 
                         langDescFr = Msg.Message,Msg.pLangueID 
                       } ;

这样就可以避免匿名类型问题。

票数 0
EN

Stack Overflow用户

发布于 2012-02-10 04:23:24

您需要选择原始行并显式设置网格列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9217558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档